我希望有全局变量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();
在一个(也是唯一一个)源文件中。
但是就像我需要函数来传递我想要规避的输入值。
答案 0 :(得分:0)
JaBe - 我对Const的理解是它无法改变,它是一个恒定的设定值。
话虽如此,这是对的吗?你应该能够获得const的地址并将其放在指针中。
int * myConstGlobalPointer =& myConstGlobal;
如果编译器是宽容的,并允许你这样做,你可以设置myConstGlobalPointer = input; 这应该设置myConstGlobal的值。
技巧不是将const指针调用为const指针,这可能会起作用。
添