c-preprocessor 相关问题

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



如果将main()定义为宏?

我们知道main()是C程序的入口点。但是,如果我们将Main定义为宏,会发生什么? #define main sosings_else 该程序会编译并正确运行吗? 如何差异...

回答 1 投票 0

使用Boost预处理器静态初始化阵列

如何使用Boost预处理器来静态初始化带有字符串和指针对的数组,如下所示 #include 结构节点; 结构端口 { 端口(std :: String name_,...

回答 1 投票 0

this this有效,但是如果更改文件包含空格,那些路径被未清除的引号包围。

回答 1 投票 0

这可能与如何在宏中正确转发结构化的绑定参数有关,但是我觉得真正的问题不是相同的,因此可能具有不同的解决方案。 我想通过一个...

using param = std::tuple<int, int>; // This works INSTANTIATE_TEST_SUITE_P( instance, suite, cases, [](const testing::TestParamInfo<param>& info) { return std::string(std::get<0>(info.param) + "_to_" + std::string(std::get<1>(info.param)); } ); // This also works static constexpr auto name = [](const testing::TestParamInfo<param>& info) { const auto [a, b] = info.param; return std::string(a) + "_to_" + std::to_string(b); }; INSTANTIATE_TEST_SUITE_P( instance, suite, cases, name ); // But this does not compile INSTANTIATE_TEST_SUITE_P( instance, suite, cases, [](const testing::TestParamInfo<param>& info) { const auto [a, b] = info.param; return std::string(a) + "_to_" + std::to_string(b); } );

回答 0 投票 0




如何不重复的C预处理器手柄包含并复制多次

我最近了解了C编译器的实际工作原理,并且有一个我不理解的特定配置:当我编写标头时,看起来像这样: #IFNDEF名称 #定义名称 //

回答 1 投票 0

忽略或重新定义 GCC 标准预定义宏

是否可以告诉 GCC 编译源代码,并忽略 __FILE__、__LINE__ 等宏,或者重新定义它们以扩展为空字符串?

回答 2 投票 0

为什么GCC的typeof()不能字符串化?

我想打印 typeof() 输出的类型,但 typeid 仅在 C++ 中可用。为什么我不能使用字符串化来获取该类型的名称? #define GET_STRING(s) #s #定义示例(输入)...

回答 2 投票 0

使用 __VA_ARGS__ 定义字符串化宏时出错

我一直在尝试在 C 中实现一个函数宏,在参数前面添加“DEBUG:”,并将其参数传递给 printf: #define DBG(格式, ...) printf("调试: " #format " “,__VA_ARG...

回答 4 投票 0

C 编译器预处理器输出

C 编译器支持生成扩展名为 .i 的预处理器输出文件。 据我所知,Microsoft (Visual Studio)、ARM、Keil 和一些 GNU 编译器都是如此。 他们通常使用

回答 2 投票 0

制作预处理器字符串宏而不扩展字符串中的内容

prog.c 有 #包括 #定义 STR(x) _STR(x) #定义_STR(x) #x int main() { const char *s = STR(MYPATH); 看跌期权; } 并使用 cc -DMY 编译...

回答 1 投票 0

C 中小 k 的组合(n 选择 k)

我正在编写一些代码,考虑 n 选择 k 作为小 k 和变量 n。在Python中我会写 从 itertools 导入组合 对于组合中的 i1、i2、i3(范围(n)、3): # 做...

回答 1 投票 0

C++ 上的预处理器重载[重复]

我目前正在完成一个库,并希望我的“调试”日志功能在编译时是可选的。 我的想法是:检查 DEBUG 是否已定义,然后定义我的自定义调试函数...

回答 1 投票 0

针对各种C/C++编译器优化代码

对于那些为多个平台开发软件的人来说,如何处理编译器可能比其他编译器更好地完成某些事情的可能性。 假设您为 OS X、Windows、Linux 进行开发...

回答 3 投票 0

双字符串化技巧到底是如何工作的?

至少有一些 C 预处理器允许您将宏的值(而不是其名称)字符串化,方法是通过一个类似函数的宏将其传递给另一个对其进行字符串化的宏: #定义 STR1(x) #x #定义...

回答 2 投票 0

在 C 中编译时填充数组

我有一些嵌入式 C 代码,我想要一个正弦值列表。我在 C++ 中使用 constexpr 函数做了类似的事情,该函数在主循环之外返回 std::array : #包括...

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.