top/contents search

20. 杂项

20.1 如何从函数返回多个值?

20.2 存储文本行的数据结构有什么好的选择?我开始使用固定大小的字符数组的数组char,但它们太受限制了。

20.3 如何打开命令行中提到的文件,并解析选项标志?

20.4 使用errno?

20.5 如何写入可以在其他字长、字节顺序或浮点格式不同的机器上读取的数据文件?

20.6 如果我有一个char *变量指向一个函数名,我该如何调用该函数?代码如

	extern int func(int, int);
	char *funcname = "func";
	int r = (*funcname)(1, 2);
	r = (*(int (*)(int, int))funcname)(1, 2);
似乎行不通。

20.6b 如何确保整数算术不会溢出?

20.7 如何操作单个位?

20.8 如何实现位的集合或数组?

20.9 如何确定机器的字节顺序是大端还是小端?

20.9b 如何交换字节?

20.10 如何将整数转换为二进制或十六进制?

20.11 我可以使用基-2 常量(例如0b101010)?
是否有用于二进制的printf格式说明符?

20.12 最高效地计算整数中已设置的位数的方法是什么?

20.13 使我的程序高效的最佳方法是什么?

20.14 指针真的比数组快吗?函数调用会减慢多少速度?++ii = i + 1?

20.15 我一直在用移位运算符替换乘法和除法,因为移位更有效。

20.15b 人们声称优化编译器很棒,我们不再需要为了速度而编写汇编代码,但我的编译器甚至无法将i/=2替换为移位。

20.15c 如何在不使用临时变量的情况下交换两个值?

20.16 哪个更有效,switch语句还是if/else链?

20.17 有办法switch在字符串上?

20.18 有办法使用非常量case标签(例如范围或任意表达式)吗?

20.19 函数中的外部括号return语句真的可以省略吗?

20.20 C 语言的注释为什么不能嵌套?我该如何注释掉包含注释的代码?注释在引号字符串中是否合法?

20.20b 为什么没有编号的多级break语句一次跳出多个循环?我应该用什么代替,goto?

20.21 似乎缺少一些运算符,例如^^, &&=,而->=.

20.21a C 语言有循环移位运算符吗?

20.21b C 语言是门伟大的语言,还是别的什么?还能在哪里写出类似a+++++b ?

20.22 如果赋值运算符是:=,那么意外写出类似if(a = b) ?

20.23 C 语言有等同于 Pascal 的with语句吗?

20.24 C 语言为什么没有嵌套函数?

20.24b 什么是assert()?我应该何时使用它?

20.25 如何从 C 调用 FORTRAN(C++、BASIC、Pascal、Ada、LISP)函数?(反之亦然?)

20.26 有人知道用于将 Pascal 或 FORTRAN(或 LISP、Ada、awk、“旧” C 等)转换为 C 的程序吗?

20.27 C++ 是 C 的超集吗?C 和 C++ 有什么区别?我可以使用 C++ 编译器编译 C 代码吗?

20.28 我需要一种“近似”的 strcmp 例程,用于比较两个字符串的相似度,但不必完全相等。

20.29 什么是哈希?

20.30 如何生成具有正态或高斯分布的随机数?

20.31 如何在给定日期的情况下找出星期几?

20.32(year % 4 == 0)是判断闰年的准确测试吗?(2000 年是闰年吗?)

20.33 为什么tm_sectm结构体中范围从 0 到 61,暗示一分钟可能有 62 秒?

20.34 这是一个很好的谜题:如何编写一个生成自身源代码的程序?

20.35 什么是“Duff's Device”?

20.36 下一届国际混淆 C 代码竞赛 (IOCCC) 何时举行?如何提交参赛作品?今年 IOCCC 的获胜者是谁?如何获取当前和往届获奖作品的副本?

20.37 K&R1 中提到的entry关键字是什么?

20.38 “C”这个名字到底是怎么来的?

20.39 如何发音“char”?那个“#”字符的奇怪名字是什么?

20.39b “lvalue”和“rvalue”是什么意思?

20.40 在哪里可以获取此列表的额外副本?


回到顶部

contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管