大家好,欢迎来到IT知识分享网。
目录
引号和尖括号区别
一、引用的头文件不同
#include< >引用的是编译器的类库路径里面的头文件。
#include“ ”引用的是你程序目录的相对路径中的头文件。
二、用法不同
#include< >用来包含标准头文件(例如stdio.h或stdlib.h).
#include“ ”用来包含非标准头文件。
三、调用文件的顺序不同
#include< >编译程序会先到标准函数库中调用文件。
#include“ ”编译程序会先从当前目录中调用文件。
四、预处理程序的指示不同
#include< >指示预处理程序到预定义的缺省路径下寻找文件。
#include“ ”指示预处理程序先到当前目录下寻找文件,再到预定义的缺省路径下寻找文件。
参考:#include中尖括号和双引号的区别_路人王_Zz的博客-CSDN博客_include引号和尖括号的区别
默认include路径设置
除了默认的/usr/include, /usr/local/include等include路径外,还可以通过设置环境变量来添加系统include的路径:
以上修改可以直接命令行输入(临时),也可以写入文件:写入/etc/profile中(对所有用户生效),也可以在用户home目录下的.bashrc或.bash_profile中添加(针对某个用户生效),修改完后重新登录shell即生效。
查看添加结果
对于C
echo | gcc -v -x c -E -
对于C++
echo | g++ -v -x c++ -E - 或者 echo | gcc -v -x c++ -E -
修改gcc/g++默认include路径_weixin_的博客-CSDN博客
其他:
2011关于static和extern、头文件的一点总结。
关于static和extern、头文件的一点总结。 【转】
今天写了一个测试程序。突然想起了几个问题。特地测试了一下:
主程序为testemail.c
#include<stdio.h>
2 #include<stdlib.h>
3 #include<string.h>
4 #include “system.h”
5
6
7 int main(int argc,char argv)
8 {
9 int ret;
10 NET_EMAIL getmail ;
11 NET_EMAIL * pgetmail = &getmail;
12 strcpy(pgetmail->SendAddr,””);
13 strcpy(pgetmail->Sendername,””);
14 strcpy(pgetmail->Title,”meinv”);
15 strcpy(pgetmail->Recievers,”,,”);
16 strcpy(pgetmail->path,”/var/log/messages”);
17 SendEmail(pgetmail);
18 print();
19 }
头文件为system.h
里面声明了NET_EMAIL这种结构体。也声明了SendEmail和print这两个函数。
被测试程序为system.c里面实现了SendEmail和print
测试结果如下:
1.即使不在system里声明函数SendEmail和print,只要system.c和testemail在同一个目录下。
总是能够编译通过并且可以成功运行。——-这说明函数默认的性质为extern的。
2.当system.c里声明两个函数关键字为static的时候,编译就会报错。可见static的作用是限制函数
只能在该文件内被引用。
那么问题出现了。这样的话,某种意义上来说头文件有什么用呢?
经过查找资料和测试如下
1.很多商业代码不会提供给客户源码。比如这个system.c在真正用的时候,可能会编译成system.o的形式提供给客户,
给其它的程序开发人员来调用。这样的话,如果没有system.h,其它的程序员怎么知道有SendEmail这个函数,即便
知道,怎么精确的知道用法和参数?所以这个时候头文件就起到了说明书的作用了。
2.测试当system.h里没有SendEmail的时候,即便在testemail.c里调用SendEmail的时候,给它一个不合法的参数,发
现编译仍然可以通过,但是真正运行的时候就出现了段错误。这样的话会给排除BUG带来困难。因此这个时候头文件
起到了类型安全检查的作用。
所以可以有以下的总结:
1.所谓源文件就是单个.c文件。所谓工程就是同一个目录下的所有文件。
2.不想让其它.c文件访问的函数一定要加上static关键字。其他的函数虽然不在头文件里声明也可以被访问到,但是为了
类型安全检查我们也要最好在头文件里声明。写头文件就像写说明书一样。要养成好的编程风格
2011头文件中应该放些什么2
头文件中应该放些什么2 | ||||
作者:佚名 来源:不详 录入:Admin 更新时间:2008-8-17 19:38:48 点击数:3 | ||||
【字体: 】 | ||||
|
头文件中应该放些什么2 | ||||
作者:佚名 来源:不详 录入:Admin 更新时间:2008-8-17 19:38:48 点击数:3 | ||||
【字体: 】 | ||||
|
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132861.html