Questions tagged «c»

C是用于系统编程(OS和嵌入式),库,游戏和跨平台的通用编程语言。该标记应与ISO 9899标准(除非另有说明,最新版本9899:2018中定义的有关C语言的一般问题)一起使用-还要使用c89,c99,c11等标记特定于版本的请求。C与C ++截然不同,在没有合理理由的情况下,不应将其与C ++标记结合使用。

15
rails install pg-找不到'libpq-fe.h标头
$ sudo bundle install 结果 Fetching gem metadata from https://rubygems.org/........... Fetching gem metadata from https://rubygems.org/.. Using rake (0.9.2.2) Using i18n (0.6.1) Using multi_json (1.3.6) Using activesupport (3.2.8) Using builder (3.0.4) Using activemodel (3.2.8) Using erubis (2.7.0) Using journey (1.0.4) Using rack (1.4.1) Using rack-cache (1.2) Using rack-test (0.6.2) Using hike …

4
错误:未知类型名称“ bool”
我下载了源代码,并希望编译扫描程序的文件。它产生此错误: [meepo@localhost cs143-pp1]$ gcc -o lex.yy.o lex.yy.c -ll In file included from scanner.l:15:0: scanner.h:59:5: error: unknown type name ‘bool’ In file included from scanner.l:16:0: utility.h:64:38: error: unknown type name ‘bool’ utility.h:74:1: error: unknown type name ‘bool’ In file included from scanner.l:17:0: errors.h:16:18: fatal error: string: No such file or directory …
86 c  gcc  lex 

3
Win32上将double类型转换为unsigned int会截断为2,147,483,648
编译以下代码: double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble()); double d = getDouble(); printf("Indirect cast value: %u\n", (unsigned int) d); return 0; } 输出(MSVC x86): INT_MAX: 2147483647 UINT_MAX: …

3
C和C ++中几乎相同的代码在执行时间上的巨大差异(x9)
我正尝试通过www.spoj.com解决此问题:FCTRL-阶乘 您真的不必阅读它,如果您好奇的话就去做:) 首先,我用C ++实现了它(这是我的解决方案): #include <iostream> using namespace std; int main() { unsigned int num_of_inputs; unsigned int fact_num; unsigned int num_of_trailing_zeros; std::ios_base::sync_with_stdio(false); // turn off synchronization with the C library’s stdio buffers (from https://stackoverflow.com/a/22225421/5218277) cin >> num_of_inputs; while (num_of_inputs--) { cin >> fact_num; num_of_trailing_zeros = 0; for (unsigned int fives …
85 c++  c  performance  gcc  iostream 


6
在文件范围内可变地修改数组
我想创建一个恒定的静态数组,以便在我的Objective-C实现文件中使用,类似于在“ .m”文件的顶层进行如下操作: static const int NUM_TYPES = 4; static int types[NUM_TYPES] = { 1, 2, 3, 4 }; 我计划NUM_TYPES稍后在文件中使用它,因此我想将其放入变量中。 但是,当我这样做时,我得到了错误 “文件范围内的可变修改的'类型'” 我认为这可能与数组大小是变量有关(当我在其中放置整数文字时,我没有得到此消息static int types[4])。 我想解决这个问题,但也许我会做错所有事情……我在这里有2个目标: 具有整个文件可访问的数组 封装NUM_TYPES到变量中,这样我就不会在文件的不同位置散布相同的文字 有什么建议么? [编辑]在C常见问题解答中发现了此问题:http : //c-faq.com/ansi/constasconst.html

4
有选择地仅对翻译单元的一部分禁用GCC警告吗?
与此MSVC预处理程序代码最接近的GCC是什么? #pragma warning( push ) // Save the current warning state. #pragma warning( disable : 4723 ) // C4723: potential divide by 0 // Code which would generate warning 4723. #pragma warning( pop ) // Restore warnings to previous state. 我们在通常包含的标头中有代码,我们不想生成特定的警告。但是,我们希望包含那些标题的文件继续生成该警告(如果项目启用了该警告)。

3
C中的结构内存布局
我有C#背景。我是C之类的底层语言的新手。 在C#中,struct默认情况下,的内存由编译器布置。编译器可以重新排序数据字段或隐式填充字段之间的其他位。因此,我必须指定一些特殊属性来覆盖此行为,以实现准确的布局。 AFAIK,C在struct默认情况下不会重新排序或对齐的内存布局。但是,我听说很难找到一个例外。 C的内存布局行为是什么?什么应该重新排序/对齐而不是?

7
在Vim中使用C自动缩进空格?
使用Eclipse和Java令我有些受宠若惊。我开始在Linux环境中使用vim进行C编码,有没有办法让vim自动为块做适当的间距? 因此,在输入{之后,下一行将缩进2个空格,而在该行上返回则将其缩进相同,而}将后退2个空格?
85 c  vim  coding-style  vi 

3
如何从文件描述符获取FILE指针?
我正在使用mkstemp(),它提供了文件描述符,但是我想通过生成格式化的输出fprintf()。有没有一种简单的方法可以将所提供的文件描述符mkstemp()转换FILE *为适合用于的结构fprintf()?
85 c  posix  mkstemp 


10
有没有一种优雅而又快速的方法来测试整数中的1位是否在连续区域中?
我需要测试位值1的位置(对于32位整数,从0到31)是否形成连续区域。例如: 00111111000000000000000000000000 is contiguous 00111111000000000000000011000000 is not contiguous 我希望此测试(即某些功能has_contiguous_one_bits(int))具有可移植性。 一种明显的方法是遍历位置以找到第一个置位,然后找到第一个非置位并检查是否还有其他置位。 我想知道是否存在更快的方法?如果有快速的方法来找到最高和最低的设置位(但是从这个问题看来似乎没有任何可移植的位),那么可能的实现方法是 bool has_contiguous_one_bits(int val) { auto h = highest_set_bit(val); auto l = lowest_set_bit(val); return val == (((1 << (h-l+1))-1)<<l); } 只是为了好玩,这是带有连续位的前100个整数: 0 1 2 3 4 6 7 8 12 14 15 16 24 28 30 31 32 48 56 …

8
为什么会出现C malloc断言失败?
我正在实现分而治之多项式算法,因此可以将其对照OpenCL实现进行基准测试,但无法malloc正常工作。当我运行程序时,它会分配一堆东西,检查一些东西,然后将其发送size/2给算法。然后,当我malloc再次点击该行时,它会吐出以下内容: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end …
85 c  gcc  malloc  assertion 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.