Questions tagged «c»

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

11
如何从一定范围内生成随机整数
这是先前发布的问题的后续内容: 如何在C中生成一个随机数? 我希望能够在特定范围内生成一个随机数,例如1到6,以模拟骰子的侧面。 我将如何去做呢?
108 c  random 


3
为什么快速整数类型比其他整数类型快?
在ISO / IEC 9899:2018(C18)中,在7.20.1.3中进行了规定: 7.20.1.3最快的最小宽度整数类型 1下列每个类型都指定一个整数类型,该类型通常最快(268)以与至少具有指定宽度的所有整数类型一起使用。 2 typedef名称int_fastN_t指定宽度至少为N uint_fastN_t的最快有符号整数类型。typedef名称指定宽度至少为N 的最快无符号整数类型。 3需要以下类型: int_fast8_t,int_fast16_t,int_fast32_t,int_fast64_t, uint_fast8_t,uint_fast16_t,uint_fast32_t,uint_fast64_t 此表单的所有其他类型都是可选的。 268)不能保证指定类型在所有目的上都是最快的;如果实现没有明确的理由选择一种类型而不是另一种类型,它将仅选择一些满足符号性和宽度要求的整数类型。 但是没有说明为什么这些“快速”整数类型更快。 为什么这些快速整数类型比其他整数类型快? 我用C ++标记了这个问题,因为快速整数类型在C ++ 17的头文件中也可用cstdint。不幸的是,在ISO / IEC 14882:2017(C ++ 17)中没有关于其解释的章节; 我在问题正文中以其他方式实施了该部分。 信息:在C中,它们在的头文件中声明stdint.h。
107 c++  c  performance  types  int 

23
在学习Objective-C之前先学习C
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 作为一名有抱负的苹果开发人员,如果要在进入Objective-C并最终进入Cocoa Framework之前先学习C更好,我想征询社区的意见。 我的直觉说学习C,这将为我奠定良好的基础。
107 c  objective-c  cocoa 

2
使用##和__LINE__创建C宏(与定位宏的令牌串联)
我想创建一个C宏,该宏创建一个具有基于行号的名称的函数。我以为我可以做类似的事情(真正的功能在花括号内有语句): #define UNIQUE static void Unique_##__LINE__(void) {} 我希望可以扩展为: static void Unique_23(void) {} 那不行 使用令牌连接时,将按实际方式处理定位宏,最终扩展为: static void Unique___LINE__(void) {} 这可能吗? (是的,无论这看起来多么无用,我都有这样做的真实理由)。
107 c  macros  concatenation  token 

6
如何将宏定义从“ make”命令行参数(-D)传递给C源代码?
我通常使用-Dname = value选项将宏定义从“ make命令行”传递到“ makefile”。该定义可在makefile中访问。 我还使用类似的编译器选项将宏定义从“ makefile”传递到“源代码”:-Dname = value(许多编译器都支持)。可在源代码中访问此定义。 我现在需要的是允许我的makefile的用户能够立即将任意宏定义从“ make.exe命令行”传递到“源代码”,而无需更改makefile中的任何内容。 因此用户可以输入:make -f mymakefile.mk -SOMEOPTION var = 5 然后直接在代码main.c中可以看到var: int main() { int i = var; }
107 c  macros  makefile 





13
避免在printf()中尾随零
我一直在为printf()系列函数的格式说明符绊脚石。我想要的是能够在小数点后以最大的给定位数打印双精度(或浮点数)。如果我使用: printf("%1.3f", 359.01335); printf("%1.3f", 359.00999); 我懂了 359.013 359.010 而不是期望的 359.013 359.01 有谁能够帮我?
107 c  printf 

7
size_t和unsigned int之间的区别?
我很困惑size_t。我在互联网上进行搜索,到处都提到这size_t是一个无符号类型,因此它只能表示非负值。 我的第一个问题是:如果仅用于表示非负值,为什么不使用unsigned int而不是size_t? 我的第二个问题是:size_t和unsigned int互换或不?如果没有,那为什么呢? 谁能给我一个很好的例子,size_t并简要介绍一下它的工作原理?
107 c  types  unsigned 

7
获取图形函数调用图代码的工具
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 我的工作空间很大,其中包含许多C代码的源文件。尽管可以使用对象浏览器在MS VS2005中看到从函数调用的函数,在MSVC 6.0中也可以看到,但是这仅以非图形形式显示从特定函数调用的函数。此外,它没有显示从say调用的函数main(),然后是从其中调用的函数,依此类推,直到更深入到叶级别函数为止。 我需要一个工具,该工具将以图形方式给我一个函数调用图,callee并caller通过箭头或类似方式将其连接,从main()功能的最后一级开始,或者至少以图形方式在一个C源文件中显示所有函数的调用图。如果可以打印此图,那就太好了。 有什么好的工具可以做到这一点(不需要免费工具)吗?
107 c  function  call-graph 

3
如何防止gcc在C语言中优化某些语句?
为了使页面变脏(打开页面表条目中的脏位),我触摸页面的第一个字节,如下所示: pageptr[0] = pageptr[0]; 但是实际上,gcc将通过消除死存储来忽略该语句。为了防止gcc对其进行优化,我将语句重写如下: volatile int tmp; tmp = pageptr[0]; pageptr[0] = tmp; 看起来the俩有效,但有些丑陋。我想知道是否有任何指令或语法具有相同的效果?而且我不想使用-O0标志,因为它也会带来很大的性能损失。
107 c  gcc 


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.