如何解决是否可以使用C ++中的预处理程序指令在一个函数中定义全局变量并在其他函数中使用该变量?
我试图理解预处理器指令(例如#if,#ifdef和#ifndef),下面是我尝试过的代码。
注意:成员函数在python中被进一步包装和使用,因此结果显示了类似python的调用,但这并不影响任何c ++进程。
问题:1.根据我的理解,从声明的角度出发,全局变量具有整个文件的范围。那么在这种情况下,为什么在另一个函数中不接受定义的值?
要求:我想做以下类似的事情:
void Somefunc(int val){
set variable x;
}
基于x值,我想包含函数。现在的条件是: 如果x = 1,则仅应编译某些函数,因为其他函数会利用标头,这些标头会导致我使用的编译器出错。
谢谢!
解决方法
预处理在编译之前运行。它以纯文本形式处理源代码,而不关心C ++语言的语义。
未定义var
的原因是,预处理器定义从定义点到文件(预处理的翻译单元)或对应的#undef
末尾都是有效的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。