-
scanf() 有很多问题—— 参见问题12.15, 12.16 和12.17。
而且, 它的%s 格式有着和gets() 一样的问题(参见问题12.20...
-
确保你知道经典的正则表达式和文件名通配符的不同。
前者的变体在Unix工具ed 和grep 等中使用, 后者的变体在多数操作系统中使用。
有许多匹配正则表达式的包可以利用。
...
-
你可以调用srand() 来初始化模拟随机数发生器的种子, 用的值可以是真正随机数或至少是个变量, 例如当前时间。
这儿有个例子:#include <stdlib.h>...
-
为了把printf() 的正确原型说明引入作用域。对于用可变参数的函数, 编译器可能用不同的调用次序。
例如, 如果可变参数的调用比固定参数的调用效率...
-
这一段信息不可移植。
一些旧系统提供一个非标准函数nargs()。
然而它的可信度值得怀疑, 因为它的典型返回值是参数的字节长度, 而不是参数的个数...
-
1、为什么编译器不让我定义一个没有固定参数项的可变参数函数?
标准C 要求用可变参数的函数至少有一个固定参数项, 这样你才可以使用va start()。
所以编译器不会接受下面...
-
许多地方有可能出错。
下面是一些通常的检查要点:1、未初始化的局部变量, 参见问题7.1。2、整数上溢, 特别是在一些16 比特的机器上...
-
问题:
“Segmentation violation”, “Bus error” 和“General protect...
-
程序设计风格, 就象写作风格一样, 是某种程度的艺术, 不可以被僵化的教条所束缚。
虽然风格的探讨经常都是围绕着这些条例。
对于goto 语句, 很早以前, 就被注意到, 随意...
-
试试能否使用opendir() 和readdir() 函数, 它们是POSIX 标准的一部分, 大多数Unix 变体都支持。
MS-DOS, VMS 和其它系统下也...
-
一台合理的电脑应该可以让你透明地访问所有的有效内存。
如果, 你很不幸, 你可能需要重新考虑程序使用内存的方式, 或者用各种针对系统的技巧。
64K 仍然是一块相当大的内存。
...
-
这有可能完全做不到。
不同的系统使用不同的方法来实现像Unix 系统的全局名字/值功能。
环境是否可以被运行的进程有效的改变, 以及如果可以, 又怎...
-
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。
定义是分配空间并赋初...
-
用<stdarg.h>提供的辅助设施。
下面是一个把任意个字符串连接起来的函数, 结果存在malloc 的内存中:
#include <stdlib.h>...
-
浮点数的定义决定它的绝对精确度会随着其代表的值变化, 所以比较两个浮点数的最好方法就要利用一个精确的阈值。
这个阈值和作比较的浮点数值大小有关。
...
-
大多数电脑都是用二进制来表示浮点和整数的。
在十进制里, 0.1 是个简单、精确的小数,
但是用二进制表示起来却是个循环小数0.000110011...
-
直接做不到这点。
但是你可以写出你自己的printf 变体, 把所有的内容都输出两次。
下边有个简单的例子:
#include <stdio.h>
#inclu...
-
当用于sprintf() 的格式串已知且相对简单时, 你有时可以预测出缓冲区的大 小。
如果格式串中包含一个或两个%s, 你可以数出固定字符的个数再加上对插入 的字...
-
问题:C 语言中布尔值的候选类型是什么?为什么它不是一个标准类型?我应该用#define 或enum 定义true 和false 值吗?C 语言没有提供标准的布尔类型, 部分因为选...
-
1 对sizeof 的理解:
例子1:
void main()
{
int a = 2;
...