c-preprocessor 相关问题

C和C ++计算机编程语言的宏预处理步骤。此标记还可用于有关源自或具有相同功能的其他编译器/语言的问题,例如Objective-C或C#中的#directives。

如何在Windows上检测X32?

X32允许用户使用在x86_64处理器上运行的32位整数,长整数和指针来编写程序。在某些使用案例中,使用X32有许多好处。 (X32与X86或X64不同; ...

回答 5 投票 1

预处理后gcc可以输出C代码吗?

我正在使用一个开源库,它似乎有很多预处理指令来支持除C之外的许多语言。这样我就可以研究库正在做什么我想看看C代码......

回答 6 投票 82

如何为不同的目的/架构包含/删除C代码功能?

我正在编写一个C程序,其中包含许多功能,其中一些功能仅在某些人的某些机器上才需要。一些功能需要某些库...

回答 2 投票 1

如何根据参数编号创建具有不同行为的宏?

我想创建一个宏,当它有HAS参数或NOT时,它将以不同的方式工作。例如:打印错误有两种不同的实现:// 1.打印消息=检查代码#...

回答 1 投票 1

C:在宏中隐藏if语句的最佳方法

在#define中隐藏if语句的最佳做法是什么?您可以在define中使用if:#define MY_MACRO(isTrue)if(isTrue)do()我的直觉说这是不好的方法。你能给......

回答 1 投票 0

如何生成所有出现的宏的列表?

我有一些使用COMPONENT宏标记的结构声明。我想从这些声明中构建一个类型列表。鉴于此代码:// a.hpp COMPONENT(A){// struct body}; // bc ....

回答 1 投票 0

MSBuild C ++ - 命令行 - 可以传递定义吗?

有没有办法转换这样的东西:#define ERROR_LOG_LEVEL 5进入msbuild通过命令行传递给它的项目的东西? msbuild.exe {???} ERROR_LOG_LEVEL = 5目标我读过......

回答 2 投票 6

计算C函数的源代码长度

我想为大学课程部分自动化C代码(ANSI C99)的分级。我想要计算的一个属性是每个C函数的行数(可选择排除空白和注释...

回答 2 投票 1

在CMake中使用C / C ++宏中的值

将C / C ++宏的值转换为CMake变量的最简单方法是什么?鉴于我检查了一个带有头文件foo.h的库libfoo。我知道foo.h包含宏#define FOO_VERSION_MAJOR&...

回答 2 投票 2

可以通过参数的数量来重载宏吗?

这是如何运作的?如何实现C99 / C ++ 11可变参数宏以根据给出多少参数来扩展到不同的东西?

回答 5 投票 40

在编译时避免使用可变长度的堆栈数组

我已经实现了一个需要一些临时堆栈空间的函数,其数量取决于其中一个输入。这闻起来像可变长度的堆栈内存分配,并不总是......

回答 2 投票 2

Java中的#define

我开始用Java编程,我想知道是否存在等效的C ++ #define。快速搜索谷歌说它没有,但任何人都可以告诉我,如果存在类似的东西......

回答 8 投票 66

C ++在使用嵌套联合定义struct时需要一个表达式

我在c ++中有一个嵌套联合的结构,如下所示:typedef enum {VAL_BOOL,VAL_NIL,VAL_NUMBER,} ValueType; typedef struct {ValueType type; ...

回答 1 投票 1

如何编写与#ifdef匹配的awk程序...#else ...#endif C预处理器宏?

我有一大堆C程序,包含以下代码块。 100. #ifdef DEBUG1。 。 。 102. #else。 。 。 105. #endif或200. #ifdef DEBUG2。 。 。 ...

回答 3 投票 1

为什么我讲师写的所有C文件都从第一行的#开头?

我正在阅读一些C课程笔记,每个C程序源文件都以程序第一行的单个#开头。然后有空白行,然后跟着其他东西......

回答 3 投票 416

如何用宏指定值?

我正在整合来自其他人的代码,这些代码写成MACRO(addr)= c其中这样做类似* addr = c由于底层处理器的变化我需要调用__builtin函数来...

回答 1 投票 0

在do-while-0中包装,使用(void)0包装在三元运算符中

我正在微软的GSL中查看这个宏:#define GSL_CONTRACT_CHECK(type,cond)\(GSL_LIKELY(cond)?static_cast (0)\:gsl :: details :: throw_exception(gsl :: fail_fast(...

回答 1 投票 -1

结合C ++和C - #ifdef __cplusplus如何工作?

我正在开发一个包含大量遗留C代码的项目。我们已经开始用C ++编写,目的是最终转换遗留代码。我对C和C ++的看法有点困惑......

回答 4 投票 281

为什么字符串化运算符只被接受为宏?

我试着在我的代码中使用#运算符:#include int main(void){printf(“hello%s !!! n”,#world);返回0;使用gcc编译,此代码会出现以下错误:...

回答 2 投票 4

我应该在标题中使用#include吗?

是否有必要#include一些文件,如果在标题(* .h)内,使用此文件中定义的类型?例如,如果我使用GLib并希望在我的...中定义的结构中使用gchar基本类型

回答 9 投票 62

© www.soinside.com 2019 - 2024. All rights reserved.