C语言 预处理指令

2018-09-12  本文已影响0人  超级皮波9

一 .宏定义 #define

#define COUNT(宏名称)  5(宏值)
  1. 企业开发分为开发阶段和部署阶段
  2. 例如在程序开发中会用到很多地址
#define URL "http://www.jianshu.com"

printf("%s\n",URL);
#include <stdio.h>

#define COUNT 5 //定义宏

int main(){

    int arr[COUNT] = {1,5,3,6,8};
    for(int i=0;i<COUNT;i++){
        printf("arr[%i] = %i\n",arr[i]);
    }
    return 0;
}
  1. 宏定义后面不写分号 宏定义是单纯的替换
  2. 宏定义分为两种,一种是不带参数的宏定义,一种是带参数的宏定义
#define COUNT 5  //定义宏

#undef COUNT  // 结束宏作用域

二 .条件编译

    #if
    #else
    #elif----->else if
    #endif---->不可以省略
#include <stdio.h>

#define COUNT 90 //定义宏

int main(){

#if 100 == COUNT  //判断如果等于100 打印满分
    printf("满分");
#elif COUNT>60   // 如果大于60 打印及格
    printf("及格了");
#endif

    return 0;
}

三. 文件包含#include


四 .typedef

int  a = 100;

typedef  int  ZS  ---给int 定义一个名称 ZS

ZS b = 200;  ----------相当于 int b = 200;
typedef  char*  String;  ---让 char*  等于String
String name = " 简书 ";
#include <stdio.h>

int main(){

    //1. 先定义结构体再起别名
    struct Person{
        char *name;
        int age;
    };

    typedef struct Person  JGT;  //给结构体 (struct Person) 定义新名字== JGT 
    
    JGT p;  // 定义结构体变量等于-----> struct Person p
    
    p.age = 23;
    
    //2. 定义的同时起别名
    typedef struct Person{
        char *name;
        int age;
    } JGT;
    
    JGT p;
    
    p.age = 23;
    
    //3. 定义同时起别名 省略结构名称 企业经常使用的方法
    typedef struct{
        char *name;
        int age;
    } Person;
    
    Person p;  //定义结构体变量
              
    return 0;
}

#include <stdio.h>

int sum(int a,int b){
    return a + b;
}

int main(){

    //以前建立指向函数的指针
    int (*funcP)(int,int) = &sum;

    int res = funcP(10,20);

    printf("res = %i\n",res);  // res = 30

    //typedef 建立指向函数的指针 果给指向函数的指针起别名, 那么指针名 (funcP1) 就是别名
    typedef int(*funcP1)(int,int);

    funcP1 plus = &sum;  // 建立指针plus == 函数sum的地址

    int res2 = plus(4,5);

    printf("res2 = %i\n",res2); // res2 = 9

    return 0;
}

五 . const 关键字

上一篇下一篇

猜你喜欢

热点阅读