二进制转换成十六进制、位运算、结构体

二进制转换成十六进制学习视频链接:第31集:二进制转换成十六进制_哔哩哔哩_bilibili

二进制、十进制、十六进制转换表

 8421码,以4位为一组,不够左补0

 结构体

学习视频链接:【洋桃电子】洋桃补习班(为0基础的初学者补足基础知识)STM32入门100步系列视频_哔哩哔哩_bilibilia

 枚举和结构体直接的区别

 C语言中的集合数据类型

 数组的局限性:数组里边只能包含一种类型的变量

定义结构体的方法

 结构体定义的关键字:

struct name { 类型 变量; }定义变量;

定义变量可以不设置
--------------------------------------------------------------------------------------
typedef struct { 类型 变量; }x;

此时的x一定要存在,它表示一种数据类型(结构体类型),可以用来定义其他变量

 结构体的使用方法 

用法一:

 

 用法二:

 在写入数据中,此时的x表示数据类型,用来定义 y 为结构体类型;调用也通过 y 来调用

结构体示例代码

#include<stdio.h>
#include<stdlib.h>
 
/*structure declare*/
struct str_func{
    int a;
    int b;
    int (*add)(int a, int b);
    int (*sub)(int a, int b);
    int (*compare)(int a, int b);
};
 
int add(int a, int b){
    return a+b;
}
 
int sub(int a, int b){
    return a - b;
}
 
int compare(int a, int b){
    if (a>b)
        return a;
    else 
        return b;
}
 
/*create a structure and init*/
struct str_func test = {
    .a = 5,
    .b = 7,
    .add = add,              //function pointer point to function
    .sub = sub,
    .compare = compare,
};
 
int main(){
    if (test.compare)
        printf("a b max = %d\n",(test.compare(test.a,test.b)));
    if (test.compare)
        printf("a add b = %d\n",(test.add(test.a,test.b)));
    if (test.compare)
        printf("a sub b = %d\n",(test.sub(test.a,test.b)));
    return 0;
}

结果展示

a b max = 7
a add b = 12
a sub b = -2

静态变量(static)

静态变量 类型说明符是static。


静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在 静态存储区内分配存储单元),该区域中的数据在整个程序的运行期间一直占用这些存储空间(在程序整个运行期间都不释放),也可以认为是其内存地址不变,直 到整个程序运行结束(相反,而auto自动变量,即动态局部变量,属于动态存储类别,占动态存储空间,函数调用结束后即释放)。静态变量虽在程序的整个执 行过程中始终存在,但是在它作用域之外不能使用。

详细解释参考:static静态变量的理解 - dzqabc - 博客园

extern变量

Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义。

谨记:声明可以多次,定义只能一次。

函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern的。但是引用的时候一样是需要声明的。

全局变量在外部使用声明时,extern关键词是必须的,如果变量无extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加extern,而编译器在此标记存储空间在执行时加载如内存并初始化为0。

局部变量的声明不能有extern的修饰,且局部变量在运行时才在堆栈部分分配内存。

详细参考:extern使用方法总结!_CSDNwei的专栏-CSDN博客_extern用法

关键字const

Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。

详细参考:关于C++ const 的全面总结_亿言-CSDN博客_const

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值