Questions tagged «c»

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

21
断言是邪恶的吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 该Go语言的创造者写的: Go不提供断言。它们无疑是很方便的,但是我们的经验是程序员将它们用作拐杖,以避免考虑适当的错误处理和报告。正确的错误处理意味着服务器在发生非严重错误后仍可继续运行,而不会崩溃。正确的错误报告意味着错误是直接的并指向重点,从而使程序员不必解释大型崩溃跟踪。当程序员看到的错误不熟悉代码时,精确的错误尤为重要。 您对此有何看法?
199 c++  c  error-handling  go  assert 



7
可重入函数到底是什么?
大多数 的 的 时代,再进入的定义转引自维基百科: 如果一个计算机程序或例程可以在之前的调用完成之前安全地再次调用(即可以安全地同时执行),则称为可重入 。要重入,可以使用计算机程序或例程: 必须不包含静态(或全局)非恒定数据。 不得将地址返回静态(或全局)非恒定数据。 必须仅对调用方提供的数据起作用。 绝对不能依赖于对单例资源的锁定。 不得修改自己的代码(除非在自己的唯一线程存储中执行) 不得调用非可重入计算机程序或例程。 如何安全定义? 如果一个程序可以安全地并发执行,是否总是意味着它是可重入的? 在检查代码的可重入功能时,应牢记的六点之间的共同点到底是什么? 也, 所有递归函数都是可重入的吗? 所有线程安全函数都可重入吗? 所有递归和线程安全函数都可以重入吗? 在写这个问题时,会想到一件事:再入和线程安全之类的术语是绝对绝对的,即它们是否具有固定的具体定义?因为,如果不是这样的话,这个问题就没有太大意义。


8
return语句vs main()中的exit()
我应该使用exit()还是仅使用return语句main()?就我个人而言,我喜欢这些return语句,因为我感觉就像在读取代码时读取任何其他函数和流程控制一样(我认为)。即使我想重构该main()函数,return似乎也比拥有更好的选择exit()。 有exit()没有特别之处return吗?
197 c++  c  coding-style  return  exit 

5
如何制作可变参数宏(可变数量的参数)
我想用C编写一个宏,它接受任意数量的参数,而不是特定数量的参数 例: #define macro( X ) something_complicated( whatever( X ) ) X参数的数目在哪里 我需要这个,因为它whatever已重载,可以使用2或4个参数调用。 我尝试两次定义宏,但是第二个定义覆盖了第一个! 我正在使用的编译器是g ++(更具体地说,是mingw)

2
C中的&&&操作
#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%d\n", c); } return 0; } 使用编译的上述程序的输出gcc为 0 1 1 使用-Wall或-Waddress选项,gcc发出警告: warning: the address of ‘i’ will always evaluate as ‘true’ [-Waddress] c在以上程序中如何进行评估?



30
如何检查整数是偶数还是奇数?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 2年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 如何检查给定数字在C中是偶数还是奇数?
193 c  integer 

27
C状态机设计
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题编辑此帖子。 3个月前关闭。 改善这个问题 我正在用C和C ++混合编写一个小项目。我正在我的一个工作线程的中心构建一个小型的状态机。 我想知道您是否对SO的专家会分享您的状态机设计技术。 注意:我主要是在尝试和测试过实现技术之后。 更新:基于SO收集的所有宝贵意见,我决定采用以下架构:

8
通过SSH使用Eclipse处理远程项目
我有以下方框: 一个带有Eclipse CDT的Windows盒, 一个Linux机器,只能通过SSH访问。 构建和运行我的项目所需的编译器和硬件都仅在机器B上。 我想使用Eclipse CDT在该项目的Windows框中“透明地”工作,并能够从IDE内远程构建,运行和调试该项目。 我该如何设置: 大楼会运转吗?有没有比编写本地makefile更简单的解决方案,rsync该方案将使项目然后调用远程makefile来启动实际构建?Eclipse托管版本是否为此提供功能? 调试会起作用吗? 最好-Eclipse CDT代码索引将起作用?我是否必须将所有必需的头文件从计算机B复制到计算机A并添加它们以手动包括路径?

10
Objective-C:布尔与布尔
我看到了“新类型” BOOL(YES,NO)。 我读到,这种类型几乎像一个字符。 为了测试,我做了: NSLog(@"Size of BOOL %d", sizeof(BOOL)); NSLog(@"Size of bool %d", sizeof(bool)); 很高兴看到两个日志都显示为“ 1”(有时在C ++ bool中为int,其sizeof为4) 所以我只是想知道布尔类型是否有问题或什么? 我可以只使用bool(似乎有效)而不损失速度吗?
192 c  objective-c  types  boolean 


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.