【C/C++】引号和尖括号的区别|默认include路径配置|头文件应放些什么|static和extern

【C/C++】引号和尖括号的区别|默认include路径配置|头文件应放些什么|static和extern头文件中应该放些什么 2 作者 佚名来源 不详录入 Admin 更新时间 2008 8 1719 38 48 点击数 3 字体 作为一般规则 应该把这些东西放入头 h 文件中 宏定义 预处理 defines 结构 联合和

大家好,欢迎来到IT知识分享网。

目录

 引号和尖括号区别

默认include路径设置

查看添加结果

关于static和extern、头文件的一点总结。

头文件中应该放些什么2


引号和尖括号区别

一、引用的头文件不同

#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博客

其他:

【C/C++】引号和尖括号的区别|默认include路径配置|头文件应放些什么|static和extern

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
【字体: 】
作为一般规则, 应该把这些东西放入头 (.h) 文件中:

  • 宏定义 (预处理 #defines)
  • 结构、联合和枚举声明
  • typedef 声明
  • 外部函数声明
  • 全局变量声明

当声明或宏定义需要在多个文件中共享时, 尤其需要把它们放入头文件中。特别是, 永远不要把外部函数原型(即外部函数声明)放到 .c 文件中。

另一方面, 如果宏定义或声明为一个 .c 文件私有, 则最好留在 .c 文件中。

头文件中应该放些什么2
作者:佚名  来源:不详  录入:Admin  更新时间:2008-8-17 19:38:48  点击数:3
【字体: 】
作为一般规则, 应该把这些东西放入头 (.h) 文件中:

  • 宏定义 (预处理 #defines)
  • 结构、联合和枚举声明
  • typedef 声明
  • 外部函数声明
  • 全局变量声明

当声明或宏定义需要在多个文件中共享时, 尤其需要把它们放入头文件中。特别是, 永远不要把外部函数原型(即外部函数声明)放到 .c 文件中。

另一方面, 如果宏定义或声明为一个 .c 文件私有, 则最好留在 .c 文件中。

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132861.html

(0)
上一篇 2025-07-28 14:26
下一篇 2025-07-28 14:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信