C中共享的全局const变量,在mexFunction()中定义

时间:2014-04-30 13:14:25

标签: c const declaration definition mex

我希望有全局变量const,但它们应该在mexFunction()函数中定义。这是因为它们应该设置为一些来自Matlab的输入值。 (mexFunction()基本上是我的main()函数。)

这样的事情是否可能?

main.h

extern int const myConstGlobal;

的main.c

mexFunction(input)
{
    int const myConstGlobal = input;
}

functions.c

#include main.h

foo(myConstGlobal){}

我目前理解的一些链接:

shared-global-variables-in-C中解释了如何使用共享的全局变量。

the second answer of this link

中介绍了如何使用共享的全局const变量
  

......你必须声明:

     

extern int const const_int;

     标题中的

和:

     

extern int const const_int = fn();

     

在一个(也是唯一一个)源文件中。

但是就像我需要函数来传递我想要规避的输入值。

1 个答案:

答案 0 :(得分:0)

JaBe - 我对Const的理解是它无法改变,它是一个恒定的设定值。

话虽如此,这是对的吗?你应该能够获得const的地址并将其放在指针中。

int * myConstGlobalPointer =& myConstGlobal;

如果编译器是宽容的,并允许你这样做,你可以设置myConstGlobalPointer = input; 这应该设置myConstGlobal的值。

技巧不是将const指针调用为const指针,这可能会起作用。