首页 > 其他 > 详细

【C】Re04

时间:2020-11-06 14:14:09      阅读:39      评论:0      收藏:0      [点我收藏+]

一、类型限定符

extern 
声明一个变量,extern声明的变量没有存储空间

const 
定义一个常量,该常量必须赋值,之后且不允许更改

volatile 
防止编译器优化代码???

register 
定义寄存器变量,提高代码效率
register是建议型的指令,不是一般的命令型指令
在CPU存在空闲寄存器的情况下,register生效
反之寄存器没有空闲,就无法起效

volatile样例:

void volatileDemo() {
    // 不使用volatile声明 编译器将舍去中间的赋值,直接从10 -> 51
    int a = 10;
    a = 11;
    a = 1;
    a = 31;
    a = 41;
    a = 51;

    // 使用volatile声明 编译器将保留中间的赋值
    volatile int b = 10;
    b = 11;
    b = 1;
    b = 31;
    b = 41;
    b = 51;
}

register的意思:

把该变量注册到寄存器中,如果空闲寄存器发现,则触发生效,变量立刻寄存放入

等待CPU计算处理

但是注意这个问题:

因为该变量可能存放到寄存器中,所以我们无法使用&获取该变量的地址

因为&是从内存中获取的

技术分享图片

三、数组

数组名称用法:

使用sizeof(数组名)获取整个数组占用的内存空间

如果除以对应的sizeof(数据类型),就可以获得该数组的长度【元素个数】

void arrayDemo () {
    int arr[] = {11, 13, 21, 45};
    // arr存储的地址 等同于 &arr[0]
    printf("arr == &arr[0] ? %x == %x", arr, &arr[0]);
}

int main() {
    arrayDemo();
    return EXIT_SUCCESS;
}

四、函数剥离

脱离主函数文件编写程序

但是我的CLion上面就是引用失败,还找不到问题。。。

1、首先编写头文件

【demo.h】

#ifndef __DEMO_H__
#define __DEMO_H__
int sum(int n1,int n2);
#endif //__DEMO_H__

2、编写引用头文件的源文件

#include "demo.h"
#include <string.h>
#include <stdio.h>

int sum(n1, n2) {
    return n1 + n2;
}

3、在主函数源文件中的Main函数中调用文件的函数

#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <stdio.h>
#include "demo.h"

int main() {
    int result = sum(5, 6);
    printf("sum 5、6 -> %d\n", result);
    return EXIT_SUCCESS;
}

五、EXIT & RETURN

void exitAndReturn () {
    exit(0); // 直接退出程序

    return; // 当前这个函数结束
}

 

【C】Re04

原文:https://www.cnblogs.com/mindzone/p/13932869.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!