c-preprocessor

    7热度

    11回答

    我有一个C程序,可以使用#define来启用或禁用很多优化。当我运行我的程序时,我想知道在编译时定义了哪些宏。 所以我想写一个宏函数来打印一个宏的实际值。事情是这样的: SHOW_DEFINE(X){\ if(IS_DEFINED(X))\ printf("%s is defined and as the value %d\n", #X, (int)X);\ els

    0热度

    2回答

    有人可以解释为什么下面的错误发生: #define bla "\xA" char a [2] = {0}; memcpy (a,bla,1); // a[0] = 0x0a <- Correct //a[1] = bla; // '=' : cannot convert from 'const char [2]' to 'char' 感谢, RM

    2热度

    4回答

    我试图在预处理器的帮助下改变C中的一些函数的行为;并且还添加可进行设置或关闭可选参数...... 的可选参数的基本模式很简单: #ifdef OPT_PARAM #define my_func(a, b, opt) _my_func(a, b, opt) #else #define my_func(a, b, opt) _my_func(a, b) #endif /*t

    5热度

    3回答

    我正在尝试编写一些最初依赖于Boost.Regex的可移植C++库代码,然后在编译器支持它时将其移至TR1,最终移至C++在将事件从std :: tr1命名空间移动到std后的0x规范。这里是想我用预处理器做一些伪代码: if(exists(regex)) // check if I can #include <regex> { #include <regex> // per TR1

    8热度

    3回答

    在gcc中,如何检查在编译C程序的过程中定义了哪些预处理器,特别是定义了哪些标准或平台特定的宏定义?

    35热度

    5回答

    是否可以在C中打印stderr预处理器变量的值?例如,我有什么现在的问题是: #define PP_VAR (10) #if (PP_VAR > 10) #warning PP_VAR is greater than 10 #endif 但我想要做的是: #define PP_VAR (10) #if (PP_VAR > 10) #warning PP_VAR=%PP

    5热度

    3回答

    我有这样一个宏(不完全,但功能还是相当相当)GCC宏##连接符: #define STRUCTMEMBER(Member,Value) GlobalStructInstance. ## Member = Value ... STRUCTMEMBER(Item,1); 这工作完全在Visual C++,但gcc 3.4.5(MingGW)产生以下错误: pasting "." and "It

    1热度

    9回答

    作为C新手我想听听Macro“define”开发人员正在使用什么。我一直在思考把这些在头跳过冗长我已经习惯于: #define TS_ typedef struct { #define _TS(x) } x; #define I(x)_ { int i; for (i = 1; i <= x; i++) { #define _I } } 我可以添加这些宏内\ n \ t等?正如我想通过

    2热度

    2回答

    我使用的Eclipse CDT与定制的makefile一个C项目,我想使用无效代码高亮作为答案提出质疑739230。自动发现活动/定义的符号不适用于我的makefile。相反,我为每个构建目标创建了一个文本文件,其中列出了活动符号。 所以我的问题是: 如何加载这些设置成一个项目,而不通过GUI会(文件夹属性 - >路径和符号 - >符号)? 我该如何选择符号添加到哪个配置/构建目标? 直接编辑的.

    14热度

    1回答

    我有一种情况,我有很多生成的函数,并希望将它们指向我创建的一些通用函数(以便在重新创建函数时重用基本代码)生成的函数名称更改)。 从本质上讲,我有函数名称的列表如下: void Callback_SignalName1(void); void Callback_SignalName2(void); ...etc 一旦这些产生,我想定义一个宏,让他们被统称。我的想法是这样的,但我没有任何运气