程序环境和预处理(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 使用标准化方法,向编译器发布特殊的命令到编译中
#if defined 判断宏是否已被定义,如果定义返回真
#if !define 判断宏是否已被定义,如果未定义返回真

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语言

 

预定义符号添加

__FUNCTION__   程序预编译时预编译器用的函数名

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

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

(0)
seven_的头像seven_bm

相关推荐

发表回复

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