Questions tagged «macros»

***请勿用于VBA / MS-Office语言。改为使用相应的[vba]标签。***宏是一种规则或模式,它指定根据以下内容应如何将某个输入序列(通常是一个字符序列)映射到一个输出序列(通常也是一个字符序列)。确定的程序。

14
如何在编译时显示#define的值?
我试图找出我的代码认为正在使用的Boost版本。我想做这样的事情: #error BOOST_VERSION 但是预处理器不会扩展BOOST_VERSION。 我知道我可以在程序运行时将其打印出来,并且我可以查看预处理器的输出以找到答案。我觉得在编译过程中采取这种方式可能会很有用。

9
是否有用于Eclipse的宏记录器?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 是否有一个用于记录和播放宏的Eclipse插件? 我已经尝试过了,但是对我没有任何好处-似乎还没有准备好黄金时段。 我了解编辑器模板,但是我正在寻找可以用来记录击键然后针对大量文本应用多次的东西。 这似乎是IDE中一个奇怪的漏洞。我是否为此缺少一些内置工具?
115 java  eclipse  ide  editor  macros 

4
如何从预处理器宏中识别平台/编译器?
我正在编写一个跨平台的代码,应该在linux,windows,Mac OS上编译。在Windows上,我必须支持Visual Studio和mingw。 有一些特定于平台的代码,应该放在#ifdef .. #endif环境中。例如,在这里我放置了win32特定的代码: #ifdef WIN32 #include <windows.h> #endif 但是如何识别linux和mac OS?我应该使用什么定义名称(或其他名称)?


3
我可以使用哪个预定义的宏来检测clang?
我正在尝试检测用于编译我的源代码的编译器。我可以轻松地找到预定义的宏来检查MSVC或GCC(例如,请参阅http://predef.sourceforge.net/),但是我找不到任何要检查clang的宏。 有人知道clang是否定义了一个宏__CLANG__,以便知道当前正在编译我的代码吗?

13
iOS如何通过宏检测iPhone X,iPhone 6 plus,iPhone 6,iPhone 5,iPhone 4?
如何通过宏检测设备型号?我曾经使用过类似的东西,但模拟器上的结果始终为IS_IPHONE_5 #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) #define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) #define IS_IPHONE_5 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0) #define IS_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0) #define IS_IPHONE_6PLUS (IS_IPHONE && [[UIScreen mainScreen] nativeScale] == 3.0f) #define IS_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0) #define IS_RETINA ([[UIScreen …
111 iphone  macros  detect 

2
使用##和__LINE__创建C宏(与定位宏的令牌串联)
我想创建一个C宏,该宏创建一个具有基于行号的名称的函数。我以为我可以做类似的事情(真正的功能在花括号内有语句): #define UNIQUE static void Unique_##__LINE__(void) {} 我希望可以扩展为: static void Unique_23(void) {} 那不行 使用令牌连接时,将按实际方式处理定位宏,最终扩展为: static void Unique___LINE__(void) {} 这可能吗? (是的,无论这看起来多么无用,我都有这样做的真实理由)。
107 c  macros  concatenation  token 

6
如何将宏定义从“ make”命令行参数(-D)传递给C源代码?
我通常使用-Dname = value选项将宏定义从“ make命令行”传递到“ makefile”。该定义可在makefile中访问。 我还使用类似的编译器选项将宏定义从“ makefile”传递到“源代码”:-Dname = value(许多编译器都支持)。可在源代码中访问此定义。 我现在需要的是允许我的makefile的用户能够立即将任意宏定义从“ make.exe命令行”传递到“源代码”,而无需更改makefile中的任何内容。 因此用户可以输入:make -f mymakefile.mk -SOMEOPTION var = 5 然后直接在代码main.c中可以看到var: int main() { int i = var; }
107 c  macros  makefile 

9
如何将度数转换为弧度?
我正在尝试将此Obj-C代码转换为Swift代码,但我不知道该代码应该是什么? #define DEGREES_TO_RADIANS(degrees)((M_PI * degrees)/180) 我用Google搜索并找到了这个 但是我不知道如何在Swift中转换它?
107 ios  objective-c  macos  swift  macros 



7
C / C ++宏中的逗号
说我们有一个这样的宏 #define FOO(type,name) type name 我们可以使用像 FOO(int, int_var); 但并非总是那么简单: FOO(std::map<int, int>, map_var); // error: macro "FOO" passed 3 arguments, but takes just 2 我们当然可以: typedef std::map<int, int> map_int_int_t; FOO(map_int_int_t, map_var); // OK 这不是很符合人体工程学。加上类型不兼容必须加以处理。任何想法如何解决宏?
103 c++  c  macros  c-preprocessor 


4
Swift:如何使用PREPROCESSOR标志(例如#if DEBUG)来实现API密钥?
在Objective-C某些情况下,使用静态字符串常量来定义备用API密钥(例如,区分分析包(例如MixPanel,Flurry或Crashlytics)的RELEASE和DEBUG密钥有时很有用): #if DEBUG static NSString *const API_KEY = @"KEY_A"; #else static NSString *const API_KEY = @"KEY_B"; #endif 然后... [Analytics startSession:API_KEY]; 由于Swift编译器不再使用预处理器,这如何转换为Swift?

7
为什么只定义一个尚未定义的宏?
在我们的C代码库中,我看到每个宏都以以下方式定义: #ifndef BEEPTRIM_PITCH_RATE_DEGPS #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #endif #ifndef BEEPTRIM_ROLL_RATE_DEGPS #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #endif #ifndef FORCETRIMRELEASE_HOLD_TIME_MS #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #endif #ifndef TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f #endif 进行这些定义检查而不是仅仅定义宏的原理是什么? #define BEEPTRIM_PITCH_RATE_DEGPS 0.2f #define BEEPTRIM_ROLL_RATE_DEGPS 0.2f #define FORCETRIMRELEASE_HOLD_TIME_MS 1000.0f #define TRIMSYSTEM_SHEARPIN_BREAKINGFORCE_LBS 50.0f 我在网上的任何地方都找不到这种做法的解释。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.