预处理器指令 #include 、 #define

来源:互联网 发布:三星共和国 知乎 编辑:程序博客网 时间:2024/05/18 02:39



总结:

                   #include、 #define 本质都是替换(replace),区别在于

 

#include  是替换文件内容到当前位置,

#define   是替换常量内容到当前位置;

 


                                                                                                              

                                                                                                                   2015年5月14日星期四  16:39:50




--------------------------------------------------------------正文---------------------------------------------------------

#include是文件包含指令,例如:

#include <stdio.h>

这条指令会导致预处理器把#include后面跟的文件(即stdio.h文件)的内容替换到这条指令的位置。

如果文件名由< >括起来,将表示在依赖于系统的目录中寻找这个文件。

如果文件名由" "括起来,系统将会首先在当前程序目录中查找对应文件,如果找不到,再到其他依赖于系统的目录中寻找。

 

#define是宏定义,例如:

#define a 45

这条指令会导致程序所有单独出现的a被替换成45.

 

 

  一, #include和 #define 预处理器指令

  在C程序有两种代码不是C语言,他们是预处理器指令(preprocessor directive)。预处理指令是以符号#开始,它们只在编译程序是发生作用,不会再运行程序时产生任何行为。

  最常用的预处理器指令是:

#include;

#define

  1.1 包含文件

  #include 有两种格式:

  1)#include <filename>

  2) #include "filename"

  #include 会在程序被编译前,把filename的文件内容替换了。

  当安装编译器时,安装程序会在硬盘上创建一个独立的位置(一个目录中)存放编译器附带的各种#include文件。当使用某个内置#include文件时,要使用带尖括号 < 和 > 的#include格式。

  说明: main()不是内置函数,main()是一个必须提供的函数。printf()对应的#includeinclude文件是STDIO.H(标准输入/输出),strcpy()对应的#include文件是STRING.H

  使用自己的头文件(head file),需要用第二种形式的预处理指令---带引号的形式。如果使用带引号,

C语言会首先在程序所在的磁盘目录中寻找,然后再到内置的#include目录中寻找。

  技巧:鉴于这种搜索顺序,可以自己编写头文件,然后命名为和内置的头文件相同的文件名,这样文件就能够代替C语言的文件了。

  注意: #include指令最好放在main()之前

  1.2 定义常量

  #define预处理指令用来定义常量(constant)。C常量其实就是字面量,就是不会改变的值。#define预处理器指令允许给字面量命名。定义的变量被称为命名常量(named constant) 和定义常量(defined constant)

  #define指令格式:#define CONSTANT constantDefinition

  例子: #define MYNAME "Paula Holt"

  #define PI 3.14159

  说明:定义常量名要使用大写字母。这个是约定俗成的,和普通变量进行区分,大写更加易于辨认。定义的常量有点像是全局变量

  注意:1,不要把为内置函数写得#include语句放在main()后面。在mian()之前用#include包含头文件,可以再任何时候用#include包含自己写的头文件。

  2,不要把定义常量当成变量看待。与变量不同,一旦常量被定义之后,就不能在常量中存储数据。

  #include<stdio.h> #include "mycode.h" #defineMINORDER 50 #define COMPNAME "Amalgamated Go."

二输入 (使用scanf)

0 0
原创粉丝点击