Chinaunix
标题:
以#号开头的是什么语句
[打印本页]
作者:
yzyngn
时间:
2009-07-03 23:16
标题:
以#号开头的是什么语句
我的 a.c 的内容只有
#include<limits.h>
(我只想看看这个 limits.h 头文件里是些什么东西。)
通过 [root@localhost H]# gcc -E a.c -o a.i 打开文件 a.i 后怎么出现些以#符号开头的东东呢?这些以#开头的东东什么意思?好像C语言里没有这种语法阿?
[root@localhost H]# cat a.i
# 1 "c.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "c.c"
# 1 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h" 1 3 4
# 11 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h" 3 4
# 1 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/syslimits.h" 1 3 4
# 1 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h" 1 3 4
# 122 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h" 3 4
# 1 "/usr/include/limits.h" 1 3 4
# 27 "/usr/include/limits.h" 3 4
# 1 "/usr/include/features.h" 1 3 4
# 329 "/usr/include/features.h" 3 4
# 1 "/usr/include/sys/cdefs.h" 1 3 4
# 313 "/usr/include/sys/cdefs.h" 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 314 "/usr/include/sys/cdefs.h" 2 3 4
# 330 "/usr/include/features.h" 2 3 4
# 352 "/usr/include/features.h" 3 4
# 1 "/usr/include/gnu/stubs.h" 1 3 4
# 1 "/usr/include/bits/wordsize.h" 1 3 4
# 5 "/usr/include/gnu/stubs.h" 2 3 4
# 1 "/usr/include/gnu/stubs-64.h" 1 3 4
# 10 "/usr/include/gnu/stubs.h" 2 3 4
# 353 "/usr/include/features.h" 2 3 4
# 28 "/usr/include/limits.h" 2 3 4
# 145 "/usr/include/limits.h" 3 4
# 1 "/usr/include/bits/posix1_lim.h" 1 3 4
# 153 "/usr/include/bits/posix1_lim.h" 3 4
# 1 "/usr/include/bits/local_lim.h" 1 3 4
# 36 "/usr/include/bits/local_lim.h" 3 4
# 1 "/usr/include/linux/limits.h" 1 3 4
# 37 "/usr/include/bits/local_lim.h" 2 3 4
# 154 "/usr/include/bits/posix1_lim.h" 2 3 4
# 146 "/usr/include/limits.h" 2 3 4
# 1 "/usr/include/bits/posix2_lim.h" 1 3 4
# 150 "/usr/include/limits.h" 2 3 4
# 123 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h" 2 3 4
# 8 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/syslimits.h" 2 3 4
# 12 "/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/limits.h" 2 3 4
# 2 "c.c" 2
[root@localhost H]#
作者:
www_xylove
时间:
2009-07-04 01:05
批注吧
作者:
gamester88
时间:
2009-07-04 08:06
C语言中
#开头的是预处理指令,不是C语句的一部分
#开头的语句,在预处理阶段,由预处理器处理,例如:
#include <stdio.h>
预处理器会将stdio.h文件的内容加入到当前文件的头部,而
#define CONST 10
则会将文件中的CONST,用10代替(是直接代替)
预处理完毕后,才对文件进行编译。
作者:
山野村夫
时间:
2009-07-04 09:36
3楼说的对
作者:
www_xylove
时间:
2009-07-04 11:15
学习了
作者:
yzyngn
时间:
2009-07-04 11:24
标题:
回复 #3 gamester88 的帖子
可是像上面的
# 1 "/usr/include/limits.h" 1 3 4
这个语句会由预处理器处理成什么样呢,起什么作用呢?
作者:
gamester88
时间:
2009-07-04 11:48
原帖由
yzyngn
于 2009-7-4 11:24 发表
可是像上面的
# 1 "/usr/include/limits.h" 1 3 4
这个语句会由预处理器处理成什么样呢,起什么作用呢?
你把它发到C版块吧
作者:
小公猫
时间:
2009-07-04 12:08
学习了~
作者:
aaaaa5aa
时间:
2009-07-04 13:34
#开头的是预处理指令
作者:
skyadmin
时间:
2009-07-04 15:00
注释文件吧,
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2