compiler-construction相关内容

MinGW的编译器Windows,使用GCC,C99 VS GNU99

我使用MinGW的编译器的Windows。我在做我C.在这读了文章的大多数某些程序似乎已经过时......最后我读C99在海湾合作委员会是不完整的,这仍然是真的吗?我真正的问题是设置C99和GNU99 ...之间的跨平台兼容性,我应该避免使用GNU99设置,它的扩展,只是坚持与C99?我是新来这个MinGW的编译器设置为我一直使用Visual Studio和决定尝试新的东西......现在我使用这 ..
发布时间:2016-08-23 10:43:57 C/C++开发

有没有下有效的C code将无法定义g正确编译任何情况下++

可能重复:结果 “ C ++&rdquo章C子集; - >在哪里呢?例子吗? 据我所知,C是的C子集++(即不存在有效的C code是无效的C ++ code)。我的问题是 G ++ 是否与所有的C code完全兼容。例如,将 G ++ -o测试test.c的 产生一个相同的二进制的gcc -o测试test.c的 在任何情况下? 更具体地说,如果他们并不总是创 ..
发布时间:2016-08-23 10:43:05 C/C++开发

分配给自己:优化或多余的?

所以我要通过非官方OpenGL库的glimg部分和整个东西来到我发现了奇怪的。在功能一个指针参数被分配给它,我看不出这可以完成任何事情。这是否在某种程度上迫使内存入高速缓存,或者是别的东西吗?可能是一个错误吗? 静态UINT8 * resample_row_generic(UINT8 *总分,UINT8 * in_near,​​UINT8 * in_far,诠释W,诠释HS) { //与近 ..
发布时间:2016-08-23 10:37:30 C/C++

双散列(##)在C使用

头文件 cissvar。 ^ h 有这样的定义: 的#define CISSQ_REQUEST_QUEUE(姓名,指数) 静态__inline无效 ciss_initq_ ##名(结构ciss_softc * SC) { STAILQ_INIT(安培; SC-> ciss_ ##名); CISSQ_INIT(SC,指数); } 而在实际使用情况ciss.c 看起来是这样 ..
发布时间:2016-08-23 10:23:44 C/C++

地址(安培)给出了编译器生成的地址或加载生成的地址?

int类型的; 的printf(“地址%U”,&安培; A); 这地址是这个..?我的意思是,这是一个编译器生成的地址,即虚拟地址或RAM装载机给定物理地址..? 由于每一次打印不同的地址,我想这一定是在RAM地址。只是想确认一下。 请提供这在你的答案提供参考的任何链接。 解决方案 正确的答案是:“这取决于” (printf的本应使用“%P”指令,投地址显示为“无效*”,对于定义良好的烦 ..
发布时间:2016-08-23 10:15:51 C/C++

没有内存对齐与海湾合作委员会

我与一些分组数据的工作。我创建结构来保存数据包。这些结构已经被巨蟒所产生的特定网络协议。 的问题是,由于编译器对齐的结构中,当我经由网络协议发送数据的事实,该消息最终被超过我想。这会导致其它设备无法识别该命令。 有谁知道解决这个工作可能让自己的加壳是完全相同的大小结构应该还是有办法,我可以关掉内存对齐? 解决方案 在GCC,你可以使用 __ __属性((包装))。这些天GCC支持的#p ..

C程序共享的库链接不设置LD_LIBRARY_PATH

我在读介绍GCC和它说,如果一个包有两种.A和.so。 GCC preFER的共享库。默认情况下,加载共享库只能在$ P $搜索pdefined设置系统目录,如的/ usr / local / lib目录和的/ usr中/ lib目录。如果库不位于这些目录之一,必须将它添加到负载路径,或者你需要使用 -static 选项强制它使用.A库。不过,我试过如下: VIM的hello.c: 的#inc ..
发布时间:2016-08-23 10:08:59 C/C++

未定义的引用调用fork()code ::在Windows操作系统块编辑器

当我在code :: Blocks的在Windows操作系统中运行低于code。 我用来获取所谓不确定的参考fork()的一个错误。 我没有设定/选择GCC编译器作为默认的编译器。 #包括LT&;&stdio.h中GT; #包括LT&;&unistd.h中GT; 无效的主要() { INT X; X = 0; 叉子(); X = 1; ... .... } 请帮帮我,告诉我, ..
发布时间:2016-08-23 10:06:05 C/C++

有不同的优化(平原,SSE,AVX)在同一个可执行文件C / C ++

我发展优化为我的3D计算,我现在有: 一个“平原”使用标准C语言库版本, 的 SSE 优化的版本,编译使用preprocessor ​​的#define USE_SSE , 的 AVX 优化的版本,编译使用preprocessor ​​的#define USE_AVX 是否有可能在3个版本之间切换,而无需编写不同的可执行文件(例如,具有不同的库文件和动态加载的“正确”的,不知道是不 ..
发布时间:2016-08-23 10:05:41 C/C++开发

为什么编译器初始化这个变量到了错误的价值?这是一个定位的问题?

我与一个嵌入式的C编译器(ARM Cortex-M3的芯片)的工作,它似乎初始化错误值一个结构。为什么会这样?如果它是一个对齐问题,应该不是编译器知道对齐的INT32U到4字节边界? 注:printf的只是抛出字节出来的串口。目前该芯片上没有stdio.h中的实现。 typedef结构 { INT32U的startTime; INT16U长度; INT32U关断时间; ..
发布时间:2016-08-23 10:02:37 C/C++

独立的语法和解析器的PHP

我在找一个现成的语法和解析器PHP(至少5.2),最好的实用工具/库,可以解析PHP code为可读AST,例如XML。解析器本身并没有在PHP写入,源语言没有太大关系。 解决方案 要回答我的问题我已经成功地编译 PHC在我的OSX箱的,解析器部分似乎运作良好。 PHC自卸XML = AST foo.php> bar.xml 创建了AST的XML重新presentation。 ..
发布时间:2016-08-23 10:02:32 PHP

这编译为更快的code:" N * 3英寸或QUOT; N +(N * 2)QUOT ;?

这编译更快code:“ANS = N * 3”或“ANS = N +(N * 2)”? 假设n是不是一个int或长,并且它是在一个现代化的Win32英特尔机器上运行。 这会是不同的,如果有一些涉及取消引用,那就是,这其中会更快? 长; 长* PN; 答长;... * PN = some_number; ANS = * PN * 3; 或者 ANS = * PN +(* PN * 2); ..
发布时间:2016-08-22 17:03:53 C/C++开发

请问这个函数定义工作?

我生成具有的gperf 前两天的哈希函数。我所看到的散功能是陌生的我。它是这样的(我不记得确切的语法): 无符号整型 哈希(STR,大小) 注册的char * str中; 注册unsigned int类型的大小; { //定义 } 现在,当我试图用C ++编译器(G ++)就向我扔的错误不具有 STR ,并编制尺寸声明。但是,这对编译C编译器(GCC)。所以,问题: 我认 ..
发布时间:2016-08-22 16:58:42 C/C++开发

文件math.h CEIL未按预期用C

为什么CEIL()向上舍甚至没有小数部分浮动?结果 当我尝试这样做: 双X = 2.22; X * = 100; //变成222.00 ... 的printf(“%LF”,CEIL(X)); //打印223.00 ...(?) 但是,当我的2.22的值更改为2.21 X * = 100; //变成221.00 ... 的printf(“%LF”,CEIL(X)); //打印221.00 ..
发布时间:2016-08-22 16:54:15 C/C++

C / C ++编译器优化的反馈

有没有人看到了其中所使用的反馈最优化的C / C ++编译器提供支持分支prediction不同的程序,缓存preloading功能等任何真实世界的数字 我搜索了它,令人惊讶甚至没有流行间preTER开发组似乎已经检查的效果。并增加10%的红宝石,Python和PHP等性能左右应该算是有用的。 难道真的没有好处或者是整个开发者社区只是懒得用呢? 解决方案 10%,是一个很好的大概数字。 ..
发布时间:2016-08-22 16:49:57 C/C++开发

有没有一种方法来编译C ++到C code?

我具有由用户配置为通过使用C ++类和节目 同一类应该被用来配置一个程序,它 只能使用C99(开放CL语言)的子集。 所以我的问题是: 有没有一种方法来编译C ++到C code? 开源将是伟大的! 解决方案 C ++的常见问题有可能列表:的是否有可能C ++转换为C?。 总之,它说,你不能指望这个给你特别可读code。想想涉及的复杂的;多重继承,虚函数解析,模板,操作符重载, ..
发布时间:2016-08-22 16:43:40 C/C++开发

现代操作系统/编译其中int(C语言)是不是32位?

问题其实是更广一些。基于过去15年的经验 目前,我假设类型的尺寸如下: 字节= 8位短= 2个字节INT = 4字节很长很长= 8字节 有没有现代操作系统在哪里这个假设可以被质疑? 解决方案 不管是不是这样的“现代“系统的存在,你应该 static_assert 断言在code这些假设,因此如果你的code是不断移植到一个平台,假设是不正确,做移植的人会立即警觉到这个问题。 ..
发布时间:2016-08-22 16:42:25 C/C++

如何调用的函数返回到调用者,被调用后?

我读到,当一个函数调用是由程序进行,被调用函数必须知道如何返回到它的调用者。 我的问题是:如何被调用的函数知道如何返回到它的调用者?有没有通过编译器的幕后工作机制? 解决方案 编译器遵循特定的“调用约定”,定义为您的目标ABI的一部分。该调用约定将包括系统知道返回到什么地址的方法。调用约定通常需要硬件对过程调用的支持优势。英特尔,例如,返回地址被压入堆栈: ...处理器将跟随在 E ..
发布时间:2016-08-22 16:39:49 C/C++

从相同的库有两个功能:为什么人产生不确定的参考,而其他没有?

我想通过pthread_mutex_trylock在函数替换和调用pthread_mutex_lock当我这样做,我得到了“未定义的引用”错误信息(见下文)。如果我被替换的pthread_mutex_lock线411-13(安培; cmd_queue_lock),我没有得到链接错误 他们都从我已经包含相同的库。为什么人产生链接错误和其他不?更重要的是,我怎么能解决这个问题?我尝试添加“外部INT ..
发布时间:2016-08-22 16:21:57 C/C++