程序的执行环境

运行环境

程序执行的过程:

    . 程序必须载入内存中。在有操作系统的环境中:一般这个由操作系统完 成。在独立的环境中,程序的载入必须 由手工安排,也可能是通过可执行代码置入只读内存来完成。
    . 程序的执行便开始。接着便调用main函数。
    . 开始执行程序代码。这个时候程序将使用一个运行时堆栈(stack), 存储函数的局部变量和返回地址。程序同 时也可以使用静态(static)内 存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。
    . 终止程序。正常终止main函数;也有可能是意外终止。

二、预处理详解
预定义符号

__FILE__      //进行编译的源文件
__LINE__     //文件当前的行号
__DATE__    //文件被编译的日期
__TIME__    //文件被编译的时间
__STDC__    //如果编译器遵循ANSI C,其值为1,否则未定义

这些预定义符号都是语言内置的;
举个栗子:

#include<stdio.h>

int main()
{
    printf(“file:%s line:%dn”, __FILE__, __LINE__);
    return 0;
}

#define

#define 定义标识符

语法:
#define name stuff

stuff这里可以是一段表达式,也可以是数字或字母;

可以用一段代码举例:

#include<stdio.h>

#define CASE break;case

int main() {
    int x = 0;
    switch (x) {
    case 1:
        break;
    CASE 2:
    CASE 3 :
    CASE 4:
    }
    return;
}

有一个在萌新时期都会有的一个困惑:
在define定义标识符的时候,要不要在最后加上 ; ?
例如:

#define MAX 1000;
#define MAX 1000

其实这里面大有讲究,可以看一下下面这段代码:

#include<stdio.h>

#define MAX 1000;

int main() {
    int max = 0;
    max = 1000;
    if (max == MAX) {
        printf(“1”);
    }
    else {
        printf(“2”);
    }
    return 0;
}

下面是宏的申明方式:

    #define name( parament-list ) stuff 其中的 parament-list 是一个由逗号隔开的符号表,它们可能出现在 stuff中。
    注意: 参数列表的左括号必须与name紧邻。
    如果两者之间有任何空白存在,参数列表就会被解释为stuff的一部分。

 

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?