关键字初级学习

typedef

复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

typedef unsigned int uint;

typedef struct Node
{
	int data;
	struct Node* next;
}Node;//创建一个结构体,里面包含了数据域,和指针域。

int main()
{
	uint num = 0;
	uint num1 = 1;
	struct Node n1;
	Node n2;//两种写法都等价,struct Node n1等价于 Node n2;
	return 0;
}

static

在c语言中:

static是用来修饰变量和函数的

  1. 修饰局部变量-称为静态局部变量
  2. 修饰全局变量-称为静态全局变量
  3. 修饰函数-称为静态函数

修饰局部变量

复制代码
void test()
{
	static int a = 1;
	a++;
	printf("%d  ", a);
}

int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

static修饰局部变量的时候,局部变量出了作用域,不销毁,本质上,static修饰局部变量的时候,改变李变量的存储位置的。

影响了变量的生命周期,生命周期变长了,和程序的生命周期一样。

!!!F10进入变成调试,F11到了函数时可以进入函数中进行循环。

修饰全局变量

全局变量是具有外部链接属性的,编译+链接-->生成可执行程序

static修饰全局变量的时候,这个全局变量的外部链接属性就变成了内部链接属性。其他源文件(.c)就不能再使用到这个全局变量了。我们在使用的时候,就感觉作用域是变小了。原本是整个工程,现在是static所在的文件了。

修饰函数

函数时具有外部链接属性的

一个函数本来时具有外部链接属性的,但是被static修饰的时候,外部链接属性就变成了呃呃你不链接属性,其他源文件(.c)就无法使用了。

register

电脑上的存储设备,寄存器(集成到CPU上)

复制代码
int main()
{
	register int num = 3;//建议存放在寄存器中
	//内存可以更快的使用寄存器中的num数据
	return 0;
}

define

复制代码
//define定义标识符常量
#define NUM 100

int main()
{
	printf("%d\n", NUM);
	int n = NUM;
	printf("%d\n", n);
	int arr[NUM] = { 0 };
	return 0;
}

//define定义宏
#define ADD(x,y) ((x)+(y))

int add(int x, int y)
{
	return x + y;
}

int main()
{
	int a = 10;
	int b = 20;
	int c = ADD(a, b);
	printf("宏定义输出的结果%d\n", c);
	int d = add(a, b);
	printf("函数定义输出的结果%d\n", d);
	return 0;
}
相关推荐
牛油果子哥q6 分钟前
C++模板万字深度精讲:函数/类模板特化、全特化与偏特化、SFINAE机制、类型萃取、模板元编程入门、工程实战落地
开发语言·c++·面试
M78佐菲14 分钟前
Linux学习笔记:进程回收、exec函数簇与线程
linux·笔记·学习·算法
linux-hzh16 分钟前
百日算法修炼 · Day 18
算法
用户8132679332519 分钟前
Python 计算盘中 VWAP:为什么 1 分钟 K 线是量化工程中的高性价比选择
后端·算法·github
神仙别闹20 分钟前
基于C++ 实现 L 系统分形树
开发语言·c++
君顾121 分钟前
AI智能商城实战指南:从架构设计到部署落地的完整技术方案
java·开发语言·多商户
高频因子挖掘机23 分钟前
Python批量获取1000只ETF 5分钟K线:从分页到吞吐量优化的QuantDash实践
后端·算法·github
脉动数据行情127 分钟前
Python WebSocket 国内商品期货|螺纹钢 & 铁矿石实时行情监听
开发语言·python·websocket
AI行业应用研究36 分钟前
2026年主流报名工具测评报告:眨眼猫会务智能体报名小程序为何成为多场景首选?
java·开发语言·小程序