-
问题:
如果NUL 和0作为空指针常数是等价的, 那我到底该用哪一个呢?许多程序员认为在所有的指针上下文中都应该使用NULL, 以表明该值应该被看作指...
-
这并非易事。
一种办法是传入指向[0][0] 成员的的指针和两个维数, 然后“手 工” 模拟数组下标。
void f2(int *aryp, int n...
-
一般地说, 使用指针的时候, 你必须总是考虑内存分配, 除非明确知道编译器替你做了此事。
如果一个库函数的文档没有明确提到内存分配, 那么通常需要调用者来考虑。Unix 型的手册...
-
问题:
为什么有些代码小心地把malloc 返回的值转换为分配的指针类型。在ANSI/ISO 标准C 引入void * 一般指针类型之前,
这种类型转换通常用于在不兼容指针类型...
-
1983 年, 美国国家标准协会(ANSI) 委任一个委员会X3J11 对C 语言进行标准化。
经过长期艰苦的过程, 该委员会的工作于1989 年12 月14 日正式被批准为AN...
-
问题:
很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。
extern int func(float); int func(x) float x; { . . .
你...
-
有些ANSI 前的编译器/预处理器把下面这样的宏
#define TRACE(var, fmt) printf("TRACE: var = fmt\n", var)
解释为
...
-
有两个程序protoize 和unprotoize 可以在有原型和无原型的函数定义和声明之间相互转换。
这些程序不能完全完成“经典” C 和...
-
某些构造随编译器和硬件的实现而变化, 这一直是C语言的一个特点。
这种有意的不严格规定可以让编译器生成效率更高的代码, 而不必让所有程序为了不合理的情况承担额外的负...
-
ANSI/ISO 标准C 函数mktime() 和difftime() 对这两个问题提供了一些有限的支持。
mktime() 接受没有规格化的日期, 所以可以用一个日期的stru...
-
直接的方法是rand() % N /* 不好*/试图返回从0 到N ¡ 1 的数字。
但这个方法不好, 因为许多随机数发生器...
-
很不幸, 这没有可移植解决方法。
下面是一些你可以在你的系统中寻找的函数:
clock(), delay(), ftime(), getimeofday(), msleep()...
-
“不能使用非标准、依赖系统的函数,程序需要兼容ANSI!”
你很不走运。
要么你误解了要求, 要么这不可能做到。
ANSI...
-
首先, 尽管一个全局变量或函数可以(在多个编译单元中) 有多处“声明”, 但是“定义” 却只能允许出现一次。
定义是分配空间并赋初...
-
1 对sizeof 的理解:
例子1:
void main()
{
int a = 2;
...
-
源程序:
#include <stdio.h>
int main()
{
int i,j;
&...
-
我们在C语言编程中会遇到一些参数个数可变的函数,例如printf()这个函数,它的定义是这样的:
int printf( const char* format, .....
-
1、概述
C标准中有一个默认参数提升(default argument promotions)规则。默认参数提升有时会给我们带来疑惑。本文结合C语言的可变长参数函数来说明默认参数...
-
一.概念
在C/C++中,通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些“时间”和“日期&r...
-
C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境。本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高...