gcc相关内容

如何确定堆栈上的返回地址?

我知道,如果我的一些功能富()这是从地方叫巴()函数内,那么这个返回地址被压在堆栈中。 的#include<&stdio.h中GT; 无效美孚() { 无符号整数X; 的printf(“内富%X \\ n”,&安培; X); } 诠释的main() { 富(); ..
发布时间:2016-08-19 16:00:48 服务器开发

怎样的C preprocessor处理循环依赖?

我想知道在 C preprocessor如何处理循环依赖(#定义的)。这是我的程序: 的#define ONE TWO 二的#define THREE #定义三一诠释的main() { INT一,二,三; ONE = 1; 两= 2; 三= 3; 的printf(“一,二,三=%D,%D,%d个\\ N”,一,二,三); } 下面是preprocess ..
发布时间:2016-08-19 15:57:21 服务器开发

ANSI C VS其他C类标准

在我使用(均 GCC ,但各种版本),我得到的东西 C99模式错误多个编译类似于声明 INT I 里面的for循环前pression,而不是之前(如果我​​不使用性病= C99 选项)。在这里阅读后据我所知, GCC 选项 -ansi , -std = C89 和 -std = iso9899:1990 所有评估的ANSI C标准的,但我不明白为什么/如果我要挑 C89 与标准像 C99 一个新的 ..
发布时间:2016-08-19 15:53:44 C/C++

连接器性能相关的交换空间?

下面是为您的书呆子快感难题。有时是很方便的 小样的东西与使用的一大块一点的C程序 静态存储器。虽然编程其中一个这样的程序,我注意到 改变到Fedora 15后程序采取了的长的时间 编译。我们谈论30年代与0.1S。更奇怪的是,LD(中 连接器)是杏的CPU,慢慢开始吃所有可用 记忆。一些摆弄后,其中的细节我忘了,我管理 找到这个新的问题和我交换的规模之间的相关性 文件。下面是一个例 ..
发布时间:2016-08-19 15:52:26 服务器开发

使C浮点文字浮动(而非双)

众所周知,在C,浮点文字(例如 1.23 )的类型为双击。因此,涉及它们被提升到一倍。任何计算 我的工作是有只支持单precision(浮动)的数字浮点单元的嵌入式实时系统。我所有的变量是浮动,这precision就足够了。我不需要(也不能够负担得起)双击可言。但每一次类似 如果(X小于或等于2.5)... 写的是灾难发生:减速可以达到两个数量级。当然,直接的答案是写如果(X< 2. ..
发布时间:2016-08-19 15:52:06 C/C++

GCC内联汇编:限制

我难以理解的作用制约GCC内联汇编(x86)的发挥。我已阅读手册,这正好说明每个约束做什么。问题是,即使我明白每个约束做什么,我有为什么要使用一个约束了另一个,或影响可能是什么了解甚少。 我意识到这是一个非常广泛的话题,所以一个小例子应有助于缩小的焦点。下面是一个简单的汇编程序这只是增加了两个数字。如果发生整数溢出,它 1 的值写入到输出C变量。 int32_t A = 10,B = 5; ..
发布时间:2016-08-19 15:51:15 C/C++开发

çpreprocessor:扩大在一个指令#warning宏

我想打印宏值(扩大宏)在#warning指令。 例如,为code: 的#define AAA 17 指令#warning AAA =? 所需的编译时输出会警告:AAA = 17 我怎么使用?或者,我怎么充实到code? 解决方案 您可以使用preprocessor指令的#pragma消息。 例如:的#define STR_HELPER(X)#X STR的#define(x)的ST ..
发布时间:2016-08-19 15:50:08 C/C++

GCC优化标记至强?

我会想你的输入gcc编译器标志,以优化的至强处理器时要使用的? 有在mtune中或三月没有“至强”,所以这是最匹配? 解决方案 至强是一个营销术语,因此它涵盖了处理器,具有非常不同的内部一个长长的清单。 如果你的意思是新的Nehalem处理器(酷睿i7),然后这张幻灯片表示,由于GCC 4.3.1应=通用(虽然你自己的自己的应用程序的测试可能会发现其他设置thatoutperform这 ..
发布时间:2016-08-19 15:49:26 C/C++开发

中的crt0.o和crt1.o - 有什么区别?

最近,我一直在试图调试一些低层次的工作,我无法找到编译器(AVR-GCC)的crt0.s中,但我没有找到一个crt1.S(以及相应的.o文件相同) 什么是这两个文件之间的差异?是CRT1完全不同的东西还是什么?他们都似乎有东西引导做的(设置堆栈帧等等),但为什么区别? 解决方案 这两个信息crt0 / CRT1做同样的事情,基本上是调用之前需要什么样的main()的(如堆栈初始化,设置的 ..
发布时间:2016-08-19 15:49:12 C/C++

如何使用IDispatch的纯C语言调用COM对象

我需要使用包含在R工具gcc编译器(R窗户统计程序)编译我的一些code,问题是我需要使用的IDispatch在我的code创建访问COM对象的方法和GCC编译器不支持大部分的code,我使用这样做的,这基本上是C ++ code的。 所以我的问题是如何使用的IDispatch用C,而不必依赖于MFC,.NET,C#,WTL,或ATL创建COM对象。我相信,如果我这样做,我将能够编译我的code ..
发布时间:2016-08-19 15:48:32 C/C++

我怎么只包括使用符号时用gcc静态链接?

我部署与海湾合作委员会,4.3.2-1.1(Debian的)编译的小程序。这项计划将部署在虚拟机模板,从5的Debain到尖端的Fedora,Ubuntu的,Slackware的,凯旋门等。 程序依赖于从Xen的库这是只在一个不稳定的树可用的一些符号。因此,在虚拟机模板安装通过各自的包管理器Xen的图书馆解决不了我的眼前问题。 直到我打包我自己的这些库的版本,我需要静态链接可执行文件。 请问 ..
发布时间:2016-08-19 15:48:14 服务器开发

格式化结构的timespec

如何结构的timespec 格式化字符串?这种结构例如返回通过 clock_gettime()在Linux上的gcc: 结构的timespec { time_t的tv_sec; / *秒*的/ 长tv_nsec; / * *纳秒/ }; 解决方案 要格式化的方法之一是:的printf(“%LLD%。9LD”(长长)ts.tv_sec,ts.tv_nsec) ..
发布时间:2016-08-19 15:47:42 服务器开发

在C / C单引号和双引号++

我一直在寻找这个问题单引号与双引号用C 。我不能完全理解给出这样的解释我写了一个程序 的#include<&stdio.h中GT; 诠释的main() { 焦炭CH ='A'; 的printf(“的sizeof(CH)数:%d \\ n”,sizeof的(CH)); 的printf(“的sizeof(\\'A \\'):%d个\\ N”的sizeof('A')); 的pri ..
发布时间:2016-08-19 15:45:05 C/C++开发

手动运行gcc的步骤,编译,汇编,链接

如果你有一个简单的C程序,如 INT主要(无效){返回0;} 它可以与的gcc -o测试test.c的。编译 据我了解,GCC编译执行,组装则链接。后两个步骤都是由它运行实现为和 LD 。 我可以使用的gcc -S test.c以生成大会code。 您会键入的内容到终端,到装配code转换成可执行? (这样做的原因是为了学习组件) 解决方案 这是使用gcc的不同阶段 GCC -E - ..
发布时间:2016-08-19 15:43:32 C/C++

调用另一个文件中的函数在C相同的目录

我学习C,但我有更高层次的编程语言的长期经验。 我正在阅读有关的头文件,所以我被他们玩弄,但我注意到,我可以打电话给另一个文件中的函数,而不#包括(但它是在同一目录下),怎么可能呢?! (我是Java程序员) 它是make文件,链接器被配置这种方式还是什么? 我用开发的cpp 我们有两个文件 的main.c add.c main.c中调用该函数添加(INT X,int y)对从添加 ..
发布时间:2016-08-19 15:43:28 C/C++

GCC调试符号(-g标志)与连接器的-rdynamic选项

的glibc提供回溯()和 backtrace_symbols()来得到一个正在运行的程序的堆栈跟踪。但这个工作方案必须与连接器的 -rdynamic 标记之上。 什么是 -g 之间的区别标志传递给gcc的​​VS连接器的 -rdynamic 标志?有关示例code我做readelf到输出进行比较。 -rdynamic 似乎在符号表'显.dynsym“来生产更多的信息,但我不太知道什么额外的信息 ..
发布时间:2016-08-19 15:41:52 服务器开发

ASM,ASM挥发,重挫内存之间的区别

在实现无锁的数据结构和时序code,常常需要用晚餐preSS编译器的优化技术。通常人们做到这一点使用 ASM挥发性与内存在撞名单,但有时你看到的只是 ASM挥发性或只是一个普通的 ASM 重挫内存。 ?这些不同的语句对code产生什么样的影响(尤其是在海湾合作委员会,因为它是不太可能便携式)? 仅供参考,这些都是有趣的变化: ASM(“”); // presumably这对code一代没有 ..
发布时间:2016-08-19 15:36:02 C/C++

GCC -g VS -g3 GDB标志:有什么区别?

在编译的C源$ C ​​$ c。与海湾合作委员会要么铛或者,我总是用 -g 标记生成GDB调试信息。 的gcc -o -g的HelloWorld helloworld.c 我注意到,有些人建议 -g3 来代替。是什么 -g 和 -g3 标记之间的区别?也有之间的差异 -g 和 -ggdb ? 解决方案 从文档 -g 产生操作系统的本地格式(刺,COFF,XCOFF,或DWA ..
发布时间:2016-08-19 15:35:59 C/C++

如何分辨其中的头文件是从包括在内?

我怎样才能知道其中g ++能找到一个包含文件?基本上,如果我 的#include<&foo.h中GT; G ++会扫描搜索路径,使用任何的选项包括添加或更改的路径。但是,在天结束时,有没有办法,我可以告诉大家,G ++选择编译foo.h中的绝对路径?尤其是如果有在搜索路径的无数多个foo.h中相关 中实现这个目的的一种方法短...有没有办法让G ++来告诉我最终的搜索路径是什么,包括 ..
发布时间:2016-08-19 15:35:25 C/C++开发

锵VS GCC为我的Linux开发项目

我在大学,一个项目,我们正在使用C.我们已经探索GCC和锵,锵,并似乎是更方便用户比GCC友好。其结果是,我不知道有什么优点还是缺点是使用铛,而不是海湾合作委员会,在C和C ++在Linux上开发? 在我的情况下,这将用于学生层面的方案,而不是生产。 如果我用铛,我应该与调试GDB和使用GNU制作,或使用其他调试器和make实用程序? 解决方案 编辑: gcc的家伙还真改善GCC诊断 ..
发布时间:2016-08-19 15:33:34 服务器开发