gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:34:20 25 4
gpt4 key购买 nike

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

这样的事情可能吗?

main.h

extern int const myConstGlobal;

main.c

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

函数.c

#include main.h

foo(myConstGlobal){}

我目前的理解的一些链接:

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

the second answer of this link 中解释了如何使用共享全局常量变量。

...you have to declare:

extern int const const_int ;

in the header, and:

extern int const const_int = fn() ;

in one (and only one) source file.

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

最佳答案

JaBe - 我对Const的理解是它不能改变,它是一个常量设定值。

话虽这么说,这是 c 对吧?您应该能够获取 const 的地址并将其放入指针中。

int *myConstGlobalPointer = &myConstGlobal;

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

诀窍是不要将 const 指针称为 const 指针,这可能会起作用。

蒂姆

关于c - C 中的共享全局 const 变量,在 mexFunction() 中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23389125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com