我知道所有的C编译器实现背后都有一个标准,所以应该没有隐藏的功能.尽管如此,我相信所有的C开发人员都有他们一直在使用的隐藏/秘密诀窍.

推荐答案

函数指针.例如,您可以使用函数指针表来实现快速的间接线程代码解释器(FORTH)或字节码调度器,或者模拟类似OO的虚拟方法.

然后,标准库中有隐藏的gem,比如qsort()、bsearch()、strpbrk()、strcspn()[后两个对于实现strtok()替换非常有用].

C语言的一个缺点是,有符号算术溢出是未定义的行为(UB).所以,每当你看到一个表达式,比如x+y,都是有符号的整数,它可能会溢出并导致UB.

C++相关问答推荐

在使用GTK 4 Columnview列表模型时,如何为多列添加排序函数.C编码,Linux/GNOME环境

如何解决C中的严格别名?

无法用C++编译我的单元测试

不会停在空格或换行符上的错误

从纯C中访问通用项对话框

当输入负数时,排序算法存在问题

CSAPP微型shell 实验室:卡在sigprocmask

Clang警告称,`ffi_type`与`sizeof`不兼容

为什么将函数名括在括号中会禁用隐式声明?

什么是.c.h文件?

getline()从c中的外部函数传递指针时输出null

合并对 struct 数组进行排序

Fscanf打印除退出C代码为1的程序外的所有内容

在文件描述符上设置FD_CLOEXEC与将其传递给POSIX_SPOWN_FILE_ACTIONS_ADCLOSE有区别吗?

意外的C并集结果

如果类型是新的,offsetof是否与typeof一起工作?

在我的第一个C语言中观察到的错误';你好世界';程序

访问未对齐联合的成员是否为未定义行为,即使被访问的成员已充分对齐?

在链表中插入一个值

在带中断的循环缓冲区中使用 易失性