gcc相关内容

如何为几行代码禁用 GCC 警告

在 Visual C++ 中,可以使用 #pragma 警告(禁用: ...).我还发现在 GCC 中你可以 覆盖每个文件编译器标志.如何为“下一行"或使用 GCC 的代码区域周围的推送/弹出语义执行此操作? 解决方案 好像是这个可以做到.我无法确定它添加的 GCC 版本,但它是在 2010 年 6 月之前的某个时间. 这是一个例子: #pragma GCC 诊断错误“-Wunin ..
发布时间:2022-01-31 09:55:17 其他开发

负数的模运算

在一个 C 程序中,我尝试了以下操作(只是为了检查行为) x = 5 % (-3);y = (-5) % (3);z = (-5) % (-3);printf("%d ,%d ,%d", x, y, z); 它在 gcc 中给了我 (2, -2 , -2) 的输出.我每次都期待一个积极的结果.模数可以是负数吗?任何人都可以解释这种行为吗? 解决方案 C99 要求 a/b 可表示时: ..
发布时间:2022-01-31 09:50:02 其他开发

如何从 gcc 中的 C/C++ 源代码获取汇编程序输出?

如何做到这一点? 如果我想分析某些东西是如何编译的,我将如何获得发出的汇编代码? 解决方案 使用 -S 选项来 gcc(或 g++). gcc -S helloworld.c 这将在 helloworld.c 上运行预处理器 (cpp),执行初始编译,然后在运行汇编器之前停止. 默认情况下,这将输出一个文件 helloworld.s.仍然可以使用 -o 选项设置输出文件. ..
发布时间:2022-01-31 09:44:22 C/C++开发

为什么 scanf() 在此代码中导致无限循环?

我有一个小型 C 程序,它只从标准输入读取数字,每个循环周期一个.如果用户输入了一些 NaN,则应将错误打印到控制台并再次返回输入提示.在输入“0"时,循环应该结束,给定的正/负值的数量应该打印到控制台.这是程序: #include 主函数(){整数,p = 0,n = 0;而(1){printf("->");if (scanf("%d", &number) == 0) {pr ..
发布时间:2022-01-31 09:30:10 其他开发

预处理后如何查看包含文件的实际顺序?

我有一个 .cpp 文件,其中包含一些头文件.这些头文件也可能包括其他头文件.包含保护措施可防止两次包含同一文件. 知道每个文件只包含一次.有没有办法计算出所有标题的最终顺序? 我尝试使用 gcc -E 来获取预处理器输出,但生成的代码似乎无法用于提取我想要的信息.有人可以帮忙吗? 编辑 我问的原因是因为我需要以正确的顺序将我的头文件包含在 SWIG 接口文件中,以避免生成 ..
发布时间:2022-01-25 19:07:06 C/C++开发

为什么要在项目中使用#include_next?

引用 iOS 关于 Wrapper Headers 的文档: #include_next 不区分 和“文件"包含,也不会检查您指定的文件是否相同名称为当前文件.它只是查找名为的文件,开始搜索路径中的目录位于当前目录之后文件已找到. 使用 `#include_next' 会导致极大的混乱.我们推荐只有在没有其他选择时才使用它.特别是,它不应在属于特定程序的标头中使用;它应该只 ..
发布时间:2022-01-25 18:27:46 其他开发

C++#include和#import的区别

#include和#import在C++中有什么区别? 解决方案 #import 是微软特有的东西,显然只适用于 COM 或 .NET 的东西. #include 是标准 C/C++ 预处理器语句,用于在源代码文件中包含头文件(或偶尔包含其他源代码). ..
发布时间:2022-01-25 18:21:03 C/C++开发

Linux 中的 PATH_MAX 定义在哪里?

我应该使用 #include 调用哪个头文件才能使用 PATH_MAX 作为 int 来调整字符串大小? 我希望能够声明: char *current_path[PATH_MAX]; 但是当我这样做时,我的编译器(Linux 上的 Clang/LLVM)会发出以下错误: recursive_find6.c:29:20:错误:使用未声明的标识符“PATH_MAX"字符 *current_ ..
发布时间:2022-01-25 18:17:00 服务器开发

有没有办法将 C11 编译成 C89?

我的一个(嵌入式)目标只有一个 C89 编译器. 我正在从事一个针对多个设备的(爱好)项目. 有没有办法将 C11 代码库编译(转译?)成 C89? (否则我将不得不像 1989 年那样编写代码.) 解决方案 不,我不认为所有 C11 都有可能.C11 具有 C89 或 C99 中根本不存在的特性:_Generic、_Atomic、_Thread、_Alignof,定义明 ..
发布时间:2022-01-25 12:57:52 其他开发

原始双精度类型比较的 GCC 问题

我有以下代码,但是在使用带有各种优化标志的 GCC 4.4 编译它时,我在运行时得到了一些意想不到的结果. #include 主函数(){常量无符号 int cnt = 10;双 lst[cnt] = { 0.0 };常量双 v[4] = { 131.313, 737.373, 979.797, 731.137 };for(unsigned int i = 0; i ..
发布时间:2022-01-25 09:13:42 C/C++开发

未找到/usr/local/lib 中的共享库

我不明白.我通常将第三方软件安装到 /usr/local 中,因此库安装到/usr/local/lib 并且链接到这些库时从来没有问题.但是现在它突然不再起作用了: $ gcc -lkaytils -o test test.c/usr/bin/ld.gold.real:错误:找不到-lkaytils/usr/bin/ld.gold.real:/tmp/ccXwCkYk.o: 在函数 main:t ..
发布时间:2022-01-24 23:27:10 服务器开发