11-C语言修饰符和预处理指

2018-09-16  本文已影响0人  低头看云

全局变量和局部变量

auto 和 register 关键字

static 关键字

// main.c 下的文件, 引入了a.h这个头文件
#include <stdio.h>
#include "a.h"
int main()
{
    int res1 = sum(10, 20);
    printf("res1 = %i\n", res1);  // 如果函数被Static修饰,则外部文件不能访问报错
    int res2 = minus(10, 20);
    printf("res2 = %i\n", res2);
    return 0;
}

// a.c 下的文件
static int sum(int num1, int num2){
    return num1 + num2;
}
int minus(int num1, int num2){
    return num1 - num2;
}

extern 关键字

编译处理过程

预处理

宏定义

不带参数的宏定义

带参数的宏定义

#define SUM(a, b) a+b

宏定义的作用域

// 宏定义
#define COUNT 666

// 用来提前结束宏定义
#undef COUNT   

条件编译

#define DEBUG 0
#if DEBUG == 1
#define URL "127.0.0.1"
#else
#define URL "www.it666.com"
#endif
// 判断有没有定义名称叫做SUM的宏
#ifndef SUM
// 如果没有定义定义就会进入到这里面,然后定义一个叫做SUM的宏
#define SUM
int sum (int num1, int num2);
#endif

文件包含 #include

typedef 关键字

typedef int INTEGER
INTEGER a;  // 等价于int a;

typedef char* String;
String name = "cww";
printf("name = %s\n", name);

// 常规写法
int (*funcP)(int , int);
funcP = &sum;

int (*funcP2)(int , int);
funcP2 = &minus;

// 注意点:如果给指向函数的指针起别名, 那么指针名称就是别名
typedef int (*funcP)(int , int);
funcP p1 = &sum;
funcP p2 = &minus;

int sum(int num1, int num2){
    return num1 + num2;
}

int minus(int num1, int num2){
    return num1 - num2;
}

const 关键字

const 和指针

#include <stdio.h>

int main()
{
  // 指针和const
    int num = 666;
    // 定义一个指针
    // int *p;
    // const int *p;  // const 写在数据类型的左边
    int const *p;   // const 写在数据类型的右边
    p = &num;
    printf("*p = %i\n", *p);

    // *p = 888;  // const 修饰的变量 不可以修改内存空间的值
    printf("*p = %i\n", *p);

    int value = 777;
    p = &value;  // 重新给p赋予value的地址
    printf("*p = %i\n", *p);  // 输出777

    return 0;
}
#include <stdio.h>

int main()
{

    // 指针和const
    int num = 666;
    
    int * const p = &num;
//    p = &num;
    printf("*p = %i\n", *p);  // 666
    *p = 888;
    printf("*p = %i\n", *p);  // 888

    int value = 777;
    // p = &value;   // 报错, const 写在星号的右边,则指针的指向不可以修改
    printf("*p = %i\n", *p);

    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读