c-preprocessor

    7热度

    3回答

    C#中是否存在#define,它使我能够在编译时知道我是否正在编译x86(Win32)或x64(Win64)?

    3热度

    3回答

    我有一个文件,里面有大约100个#defines,从1-100开始,每个文件都有一个唯一的字符串值。 现在我试图打印这个值,但不是值,我想打印什么#define。例如: #define FIRST_VALUE 1 var = FIRST_VALUE; printf("%s", var); ,我想中的printf打印FIRST_VALUE,而不是1 有没有办法在C这样做吗?或者我必须在swi

    5热度

    9回答

    #define SAFE_DELETE(a) if((a) != NULL) delete (a); (a) = NULL; OR template<typename T> void safe_delete(T*& a) { delete a; a = NULL; } 或任何其他更好的办法

    9热度

    6回答

    我知道我可以踢预处理器在我的特殊情况下用-E选项吐出输出。对于生成的代码,这个预处理器输出是杀气腾腾的。例如,我有一个4gl应用程序,Informix会将其转换为C,然后它会被吐出一个可怕的丑陋混乱。 我想要的是一个编辑器,它允许我指定预处理器的值是有效的,并只显示相关的代码。我在Vim中有一些非常基本的工作,它们匹配#ifdef和#endif,但是代码充斥着更高级的结构,如#ifndef,#if

    5热度

    1回答

    我有一个名为“foo”的假想UIViewController类。 foo继承自class bar和class bar#import的“Class A”,这是一个广泛使用的类。问题是,当我在foo中使用A类的实例时,我没有收到任何编译器错误,但我确实得到了一个警告,例如类A的实例不响应某个特定的方法。我是否必须明确#将ClassA.h导入类“foo”?即使类foo扩展了bar,它已经导入了它? 希望

    4热度

    9回答

    我正在一个8051的项目上工作,每个字节都包括在内。因此,我通常不会使用一些全局变量。将指针传递给函数的常规方法会增加开销。 我有一些函数使用单个位变量(编译器特定的扩展名为C)来标示函数的结果以及正常返回值。 bit global_error_flag = 0; bit global_data_ready_flag = 0; unsigned char A_Function (void)

    114热度

    5回答

    ,和__FUNCTION__使用。假定你的C++编译器支持他们,是有什么特别的原因不使用__FILE__,__LINE__和__FUNCTION__用于记录和调试的目的呢? 我主要关心的是给用户带来误导性数据 - 例如,报告不正确的行号或功能作为优化的结果 - 或因此导致性能下降。 基本上,我可以信任__FILE__,__LINE__和__FUNCTION__到总是做正确的事?

    6热度

    3回答

    我正在处理C#中的WriteableBitmap。我目前使用不安全的代码块,通过WriteableBitmap.BackBuffer直接访问像素。我宁愿不依赖/unsafe选项,但是,我正在考虑使用WriteableBitmap.WritePixels来代替。 有没有在“不安全”的版本有条件编译一些方式,使得它可以被用于编译的/不安全的选项时使用,而无需手动集成到我的项目文件? 总之我要找的线沿线

    3热度

    4回答

    我有一个问题,我不知道它是否可以解决。我在Visual Studio 2005上有一个C#项目,我想根据预处理常量创建不同的DLL名称。我现在所拥有的是预处理器常量,两个snk文件和两个程序集的guid。我还创建了两个配置(调试和调试预处理器),并且它们使用适当的snk和guid完美编译。 #if PREPROCESSOR_CONSTANT [assembly: AssemblyTitle("M

    79热度

    7回答

    我知道#define s等通常不会缩进。为什么? 我在一些代码在其中有#define S,#ifdef S,#else S,#endif S等可怕的混合工作的时刻,所有这些往往与普通的C代码混合在一起。 #define的非缩进使得它们难以阅读。缩进代码与非缩进#define s的混合是一场噩梦。 不缩进#define s的好处是什么?如果我缩进它,它会让我变成一个坏人吗?这不是更好吗? #ifde