问题标签 [preprocessor-directive]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 好友功能问题
我在使用 C++ 中的友元函数时遇到了一些困难,但我怀疑这更多是我在使用预处理器指令和#include 时遇到的问题的症状。
这是我正在做的一个愚蠢的例子。五个文件:bobby.h、bobby.cpp、billy.h、billy.cpp 和 main.cpp。Billy 有一个名为 ReceiveMoney 的受保护函数。Bobby 有一个名为 bank 的函数,它调用 Billy 的 ReceiveMoney。也就是说,每次鲍比去银行,他都会和比利分钱。
比利.h
比利.cpp
鲍比.h
鲍比.cpp
主文件
我收到大量错误,通常是错误 C2653: 'Bobby' : is not a class or namespace name or error C2653: 'Billy' : is not a class or namespace name
我在 VS0 的一个空控制台项目中执行此操作
c++ - 是否有用于检测 C++11x 支持的预处理器指令?
如果有一些代码我想尽可能多地使用 C++11x 扩展,但如果不支持则有一个后备。目前 OSX 版本的 GCC 和 VisualC 编译器几乎不支持 C++11x,所以我使用:
这可行,但并不是真正正确的做法,尤其是因为 MacPorts 中的 gcc 编译器确实支持 c++11x。
有#define C11X_SUPPORTED
类型宏吗?也许只有 GCC 才有?
ios - 'if not' 的 Objective-C 预处理器指令
我了解如何使用这样的预处理器指令:
但是,如果我只想做一些 IF NOT SOME_VARIABLE 的事情怎么办。
显然我仍然可以这样做:
. . . 将 if 留空,但是有没有办法:
这里的Apple 文档不建议这样做,但这似乎是一个非常基本的需求。
基本上我想做的预处理器相当于:
c++ - #if /#endif 预处理指令
我应该总是使用#if
指令加上#endif
吗?
- 如果是的话 - 如果我只使用会出现什么问题
#if
? - 如果没有 - 当我只使用
#if
时,当组合#if
/#else
?
谢谢你。
c++ - __cplusplus 指令在各种编译器中是如何定义的?
我的编译器将其扩展为 199711L。这意味着什么?我读到 __cplusplus > 199711L 表示 C++11。这个宏有哪些可能的扩展,它意味着什么?
c - C程序中设置的预处理器指令值
我想定义类似的东西
初始化预处理器指令是否可能/有效?基本上,如果需要,我想使用这个特定的指令来更新新的内存地址。例如:如果它是 C 代码中的变量,我会这样做
但是由于我想使用这个 memoryAddress 作为预处理器指令,所以我想知道执行上述代码的正确方法。因此,在编译过程开始之前,我将拥有该指令的默认地址,但稍后我想对其进行更新。
makefile - 预处理器指令无效
我遇到了预处理器指令的技术困难:
我有一个由 Makefile 构建的程序,我有 2 个选项来构建它:独立或嵌入式。
我做了类似的事情:
在我的主文件中,当我以嵌入式目的编译时,我写了一个:
但是好像g++不认识也不理解。它总是在 else 中,从不编译嵌入式版本的代码。
信息:
GNU Make 3.82
g++ (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
文件后缀:.C
c-preprocessor - 编译器应该为#define 的某些组合引发错误
在当前的项目中,我进行了很多试验,以了解不同解决方案对性能的影响。因为我喜欢保留所有代码,所以我有很多#ifdef 指令,这使我可以轻松地打开和关闭一些优化。但是,某些定义组合并未涵盖。如果发生这种情况,我希望看到编译器错误,即:
那可能吗?
ios - Objective-C 预处理器指令问题
我已经实现了这个代码来定义我的常量:
但它总是为我的变量显示320.0f和460.0f。
更新: 由于 k3a 用户发现 UI_USER_INTERFACE_IDIOM 不适用于 iOS 8.3,因为它不再是静态内联定义。
也检查这个答案: 链接
c++ - 是否可以编写一个在函数范围内使用时会报错的宏?
我有一个我只想在文件范围内调用的宏。如果在函数中使用它可以以某种方式(在编译时或运行时)抱怨,那就太好了。这可能吗?
编辑:到目前为止回复评论:我有在我的代码库中重复使用的静态对象。我创建了宏来更快地创建这些对象,因为这些对象在所有地方都使用,以至于节省击键对于生产力/烦恼很重要。
到目前为止,我一直在函数中将这些对象创建为静态对象。最近发现这不是线程安全的。我决定将所有这些对象移出函数,以便在程序启动时创建它们而不是懒惰地创建它们。我只是认为有一个故障保险可以防止这个错误在未来再次出现。
需要明确的是,这根本不会阻碍进展。如果它很容易/可能的话,这只是我认为对宏的一个很好的补充。