CTRL+Z
组合键
就是
EOF.
C
系统里定义了
EOF
--
(End
Of
File)
见
#define
EOF
(-1)
所以加不加
宏定义语句:
#define
EOF
-1
是一样的。
当读到文件结束时,许多输入函数
都会送返
EOF
也就是return
-1.
键盘输入
用:
while
(
scanf("...",...)
!=EOF
)
{
..};
或
if
(
scanf("...",...)
==EOF
)
goto
Lab_finish;
控制都可以。
scanf("...",...)
括号里
读什么都可以,%d
%f
..都可以,一旦
Ctrl+Z,
就会得到
EOF。是
scanf()函数的返回值,不是括号里的参数返回值
。
#define 这个是宏定义,比如#define N 3,它的意思就是给3起了一个外号,外号就叫N,
#define M(n) (N+1)*n 这个的意思就是(N+1)*n的外号就是M(n),这里面n是需要你赋值的。
宏定义就可以看做N=3,M(n)=(N+1)*n
宏分为有参数的和不带参数的宏。
#define N 3是不带参数的宏
#define M(n) (N+1)*n
是带参数的宏,待参数的宏和函数的功能有点类似,但是它不是函数,在编译之前已经被替换为对应的实际代码。
宏替换,定义一个M宏,这个宏有一个参数n,预编译时会把你的宏替换成你定义的运算,参数会用你提供的参数,如x=2*(N+M(2));替换后就是,x=x*(3+(3+1)*2);
宏定义的时候,编译器是直接把变量替换成参数
M(2) = (N+1)*2