腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
4
回答
如何
在预
处理器
#if条件下
捕获
未定义
宏
?
c
、
gcc
、
c-preprocessor
如何
在预
处理器
#if条件下
捕获
未定义
宏
?#endif}#ifndef ENABLE_SOMETHING
浏览 0
提问于2019-02-01
得票数 7
回答已采纳
4
回答
如何
使用
gcc
捕获
未定义
的
预
处理器
宏
?
c
、
debugging
、
macros
、
c-preprocessor
我一直在写一段代码,其中有一个被忽视
的
derp: #include<stdio.h>#include<limits.h> #define MAX_N_LENGTH由于该
宏
仅以char buf[ MAX_N_LENGTH + 1]
的
形式在一个地方
使用
,因此很难跟踪和调试该程序。 有没有办法
使用
gcc
编译器来
捕获
这样
的
错误?
浏览 68
提问于2016-09-06
得票数 4
回答已采纳
1
回答
依赖于
gcc
开关
的
条件代码
c
、
gcc
、
macros
、
c-preprocessor
我想
使用
一个基于
gcc
开关
的
#if指令来交叉编译特定
的
32位和64位代码。 __x86_64__ __i38
浏览 14
提问于2018-02-28
得票数 0
3
回答
列出C程序中
的
所有#定义
c
是否有可能在C程序执行时获得#定义(包括编译时和源代码中定义
的
)
的
列表。因为我有一个有很多C源文件
的
项目。 有没有什么编译时选项可以做到这一点?
浏览 2
提问于2010-10-14
得票数 3
回答已采纳
8
回答
#ifdef
宏
是否等同于注释
c
、
comments
、
c-preprocessor
、
conditional-compilation
假设
未定义
宏
,这些是否等价 Not valid C or C++ code Not valid C or C++ code在
GCC
4.7.1中,它似乎是等效
的
,但是有没有做更多事情
的
预
处理器
呢?
浏览 0
提问于2013-06-14
得票数 8
回答已采纳
1
回答
gcc
:警告
宏
是否被重新定义(不管先前
的
定义
如何
)
gcc
说: 有没有办法让
gcc
更加严格,在重新定义
宏
时发出警告,而不管定义
如何
?示例:#define TEST
浏览 4
提问于2022-11-29
得票数 0
5
回答
重载free(),因此我
的
程序
使用
我
的
而不是系统
的
c
、
linux
、
malloc
、
free
当我将函数重命名为myfree()时,它可以完美地工作,但是当我将它命名为free()时,程序不知道他是否需要
使用
我
的
或系统
的
,所以程序只是
使用
Segmentation fault(core dumped),即使我没有调用我
的
myfree()(只是另一个free()函数
的
声明似乎会使它崩溃) 那么,我
如何
告诉编译器
使用
我
的
而不是系统
的
呢?
浏览 1
提问于2013-02-06
得票数 2
回答已采纳
2
回答
在#if指令之前强制
宏
定义
c
、
macros
、
c-preprocessor
、
conditional-compilation
、
iar
当在预
处理器
表达式中
使用
时,我惊讶地获悉,
未定义
的
宏
自动分配值为0。我发现
GCC
有一个 在某些情况下,这种快捷方式是不可取
的
。-Wundef选项使
GCC
在遇到一个标识符时发出警告,该
浏览 0
提问于2014-05-16
得票数 1
回答已采纳
1
回答
_Pragma与
宏
替换
c
、
macros
、
undefined-behavior
在实现我自己
的
C11编译器时,我试图弄清楚
如何
准确地处理_Pragma关键字/操作符。但是,由于_Pragma操作符是在翻译阶段3中计算
的
,与执行预
处理器
指令
的
阶段相同,所以不清楚这是否是异常;标准没有提到它
的
未定义
行为是否
使用
_Pragma作为
宏
名。这表明
GCC
通过
宏
(通过警告消息)实现了_Pragma,而
未定义
它会导致编译错误。如果我取消注释#define _Prag
浏览 3
提问于2014-07-23
得票数 11
2
回答
使用
VS 2008和
GCC
对__VA_ARGS__不同处理
的
问题
visual-studio-2008
、
gcc
我正试图找出一个问题,因为不寻常地
使用
了各种
宏
。以下是假设
的
宏
:#define var(a, b, ...)va(__VA_ARGS__, a, b) 对于
gcc
来说,预
处理器
将输出。printf("%d %d %d\n", 1, 2, 3)printf, “%d %
浏览 4
提问于2010-04-04
得票数 7
回答已采纳
4
回答
函数类似于C++中
的
宏
c
、
macros
、
c-preprocessor
我试图理解像
宏
这样
的
函数
的
概念,但是有几点让我感到困惑。例如,假设我们有:我这样称呼它这将计算一个等价于a>b
的
条件表达式?如果是,则为a,否则为b。但是我搞不懂Max函数是
如何
知道
如何
处理参数
的
。与实际
的
函数不同,实现不是用调用程序中
的
代码编写
的
。define语句右边
的
语
浏览 3
提问于2013-03-23
得票数 6
回答已采纳
6
回答
"unix“是C中
的
受限关键字吗?
c
、
unix
、
gcc
、
keyword
这段代码不能在
GCC
4.3.2版(Debian4.3.2-1.1)上编译。 int unix;我已经检查了C关键字列表,"unix“不在其中。
浏览 3
提问于2010-09-22
得票数 29
回答已采纳
3
回答
是否可以在用户空间代码中
使用
可能/不可能
的
宏
?
c
、
linux
、
gcc
、
optimization
、
likely-unlikely
我在Linux内核代码中遇到了这两个
宏
。我知道它们是编译(
gcc
)
的
指令,以便在分支
的
情况下进行优化。我
的
问题是,我们可以在用户空间代码中
使用
这些
宏
吗?它会带来任何优化吗?任何一个例子都会很有帮助。
浏览 4
提问于2009-11-03
得票数 26
回答已采纳
3
回答
对变量
使用
c
宏
c
、
macros
我想访问表单
的
几个变量:int arr2=1;所以我写了但是下面的代码片段并没有像我期望
的
那样工作 #include
浏览 1
提问于2013-01-15
得票数 0
回答已采纳
1
回答
如何
_WIN32,__linux__..。预
处理器
宏
工作吗?
c
、
gcc
、
compiler-construction
、
c-preprocessor
像
GCC
这样
的
C编译器
如何
定义预
处理器
宏
来检测当前
的
操作系统? 我查看了
GCC
的
源代码,找到了 builtin_define ("_WIN32");,但我不确定这是否是定义
宏
的
地方。
浏览 6
提问于2021-03-07
得票数 1
回答已采纳
1
回答
g++ vs Visual Studio
c++
、
g++
你能告诉我为什么visual studio编译这段代码(在消息
的
末尾)很好,但g++给了我一个错误:现在这两个函数都在一个struct中,但是如果我没有在struct中编译它们(简单地说是独立
的
函数该程序旨在计算任意方阵
的
行列式。struct Matrices.......
浏览 0
提问于2012-11-22
得票数 1
3
回答
在C #ifdef中定义常量
c
、
macos
、
constants
我想根据
使用
的
操作系统定义一个常量。我用
的
是Mac电脑。
浏览 1
提问于2013-02-09
得票数 0
回答已采纳
1
回答
嵌套
宏
和##
c
但是,调用cat(cat(1,2),3)是
未定义
的
:##
的
存在阻止了外部调用
的
参数被展开。因此,它生成令牌字符串cat ( 1 , 2 )3和)3 (第一个参数
的
最后一个令牌与第二个令牌
的
连接)不是合法令牌。如果引入了第二层
宏
定义,#define (x,y) cat(x,y)
的
工作就会更加顺利;xcat(xcat(1, 2), 3)确实会生成123,因为xcat本身
的
扩展不涉及##操作符。##
的
属性是什
浏览 2
提问于2016-08-16
得票数 3
2
回答
如何
在
宏
中有条件地包含#ident指令?
c
、
gcc
、
macros
、
c-preprocessor
gcc
-4.4中
的
一个bug导致#ident指令发出警告。我们不允许在编译器(-Werror)中发出警告,所以在某些
GCC
编译器版本上编译时,我需要关闭这些警告。deprecated
GCC
extension 由于这些情况发生在多个位置,所以我想用一个
宏
替换它们,这个
宏
将在那些“坏”编译器上有条件地发出任何东西(或类似于#ident
的
东西),或者在所有其他编译器上
使用
实际
的
# of #ident上会阻塞,因为当在
宏
浏览 3
提问于2011-10-03
得票数 4
2
回答
即使最简单
的
类也不编译,“还没有声明”
c++
我有(几乎)最简单
的
课程。
浏览 4
提问于2011-04-26
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
这可能是学习C语言最好的免费在线电子书
Linux内核中常用的C语言技巧
Linux 内核中常用的 C 语言技巧
Linux c编程起步,掌握gcc的基本用法
C+23 特性概览
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券