程序环境和预处理(1)——C语言

导读:本篇文章讲解 程序环境和预处理(1)——C语言,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

目录

1.程序的两种环境

2.编译+链接

2.1 翻译环境

2.2编译本身也分为几个阶段

2.3 运行环境

3.预处理

3.1 预处理指令

3.2 预定义符号


1.程序的两种环境

在C语言的标准实现中,存在两个不同的环境

1)翻译环境,源代码被转换为可执行的机器指令。

2)执行环境,用于实际执行的代码。


2.编译+链接

2.1 翻译环境

程序环境和预处理(1)——C语言

程序环境和预处理(1)——C语言 

 

2.2编译本身也分为几个阶段

程序环境和预处理(1)——C语言

2.3 运行环境

程序的执行过程

 1.程序载入内存中。

(如果有操作系统的环境中:一般有操作系统完成;如果在独立环境中,程序载入由手工操作,也有可能是通过可执行代码置入只读内存来完成)

2.程序如果执行就开始。

(开始后就调用main函数)

3.开始执行程序代码。

(执行后程序将使用一个运行时的堆栈,存储函数的局部变量和返回地址。

程序同时也可以使用静态内存,存储于静态内存中变量在内存的整个执行过程一直保留值)

4.结束程序。

(正常结束main函数;也可能意外终止)


3.预处理

3.1 预处理指令

指令 描述
#define 定义宏
#include 包含一个源代码文件
#undef 取消已定义的宏
#ifdef 如果宏已经定义,则返回真
#ifndef 如果宏没有定义,则返回真
#if 如果给定条件为真,则编译下面代码
#else

#if 的替代方案

#elif 如果前面的#if 给定条件为真,当前条件为真,则编译下面代码
#endif

结束一个#if ….#else 条件编译块

#error 当遇到标准错误时,输出错误信息
#pragma 使用标准化方法,向编译器发布特殊的命令到编译中

3.2 预定义符号

描述
_FILE_ 进行编译的源文件
_LINE_ 文件当前的行号
_DATE_ 文件被编译的日期
_TIME_ 文件被编译的时间
_STDC_ 如果编译器遵循ANSI C,其值为1,否则未定义

下面来打印观察一下他们的内容

int main()
{
	printf("%s\n",__FILE__);
	printf("%d\n", __LINE__);
	printf("%s\n", __DATE__);
	printf("%s\n", __TIME__);
	printf("%s\n", __FUNCTION__);
	return 0;
}

程序环境和预处理(1)——C语言

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/87398.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!