dyn.load("sq.so")
is.loaded("square")

.C("square", n=as.integer(5), x=as.double(rnorm(5)))

square_in_R <- function(x) {
  if (!is.numeric(x))
    stop("argument x must be numeric")
  out <- .C("square",
            n=as.integer(length(x)),
            x=as.double(x))
  return(out$x)
}

square_in_R(1:10)