# Using @cfunction inside a function

**URL:** https://discourse.julialang.org/t/using-cfunction-inside-a-function/52030
**Category:** General Usage
**Tags:** macros
**Created:** [December 18, 2020, 9:11am UTC](https://discourse.julialang.org/t/using-cfunction-inside-a-function/52030 "2020-12-18T09:11:36Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)
#### Post date: [December 18, 2020, 9:11am UTC](https://discourse.julialang.org/t/using-cfunction-inside-a-function/52030/1 "2020-12-18T09:11:36Z")

</div>

Hello,

I have a function like this:

```julia
function f(dim::Integer, pdf::Function)
  ......
  function pdf_j(xptr, distr)
    x = map(i -> unsafe_load(xptr, i), 1:dim)
    return pdf(x)::Cdouble
  end
  pdf_c = @cfunction(
    pdf_j, 
    Cdouble, 
    (Ptr{Cdouble}, Ptr{UNUR_DISTR})
  )
  ......
end

```

That does not work: `pdf_j` undefined, Julia says.

So I tried:

```julia
  pdf_c = @cfunction(
    (xptr, distr) -> pdf(map(i -> unsafe_load(xptr, i), 1:dim))::Cdouble, 
    Cdouble, 
    (Ptr{Cdouble}, Ptr{UNUR_DISTR})
  )

```

but this time Julia says `dim` undefined.

Could you help please?

---

<div class="post-metadata">

### Author: ![stla](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stla/32/20382_2.png) [@stla](https://discourse.julialang.org/u/stla)
#### Post date: [December 18, 2020, 9:34am UTC](https://discourse.julialang.org/t/using-cfunction-inside-a-function/52030/2 "2020-12-18T09:34:32Z")

</div>

Ok, I get it: `$pdf_j`.
