STM32 static void、extern void、void

一、 void(单纯返回类型)

表示函数不返回任何值

复制代码
void function_name(int x) {
    // 函数体
    // 不需要return语句,或者可以用 return;(不返回值)
}

二、static void(静态函数)

表示函数不返回值 且具有内部链接 特性:

只能在当前文件中访问

不会与其他文件中的同名函数冲突

常用于实现文件内部的辅助函数

复制代码
// 文件1.c
static void helper(void) {
    // 这个函数只在文件1.c中可见
}

// 文件2.c
static void helper(void) {
    // 这是另一个完全独立的函数,与文件1.c中的helper不冲突
}

三、extern void(外部函数声明)

表示函数不返回值 且是在其他文件中定义的

告诉编译器:这个函数在其他地方定义

通常在头文件或使用前声明外部函数时使用

复制代码
// 声明外部函数(通常在头文件中)
extern void external_function(int x);

// main.c
#include "functions.h"
int main() {
    external_function(10);  // 函数实现在另一个文件
    return 0;
}

四、重要注意事项

**extern通常可以省略:**函数默认就是extern的

复制代码
extern void func(void);  // 显式extern
void func(void);         // 隐式extern(两者等效)

**static函数不能被其他文件访问:**提供了封装性

**static也影响变量:**对于变量,static有不同的含义(改变存储期和作用域)

组合使用:可以与其他修饰符组合

复制代码
static inline void func(void)  // 静态内联函数
相关推荐
Dr.kangder1 小时前
嵌入式面试总结(十五)——异常处理
单片机·面试·职场和发展·系统架构·嵌入式
ACP广源盛139246256733 小时前
蚂蚁百灵 Ling‑3.0‑flash 开源 + 昇腾 0‑Day 原生适配@ACP#GSV9001E 在国产算力矩阵中的机会与落地场景
大数据·人工智能·分布式·单片机·嵌入式硬件
振南的单片机世界5 小时前
SysTick硬核拆解:既是HAL_Delay的“心跳”,也是RTOS的“节拍器”
arm开发·stm32·单片机·嵌入式硬件
Lzh编程小栈6 小时前
【嵌入式底层】SPI超透彻详解:通信原理、四线结构、四种模式、寄存器底层 + 面试全集
c语言·stm32·单片机·面试·职场和发展
水果里面有苹果6 小时前
28-DRV8825PWPR步进电机驱动器
单片机
WWJA王文举9 小时前
RS485通信超时全面排查:终端电阻、A/B线、DE方向控制、串口参数和Modbus一次讲透
stm32·通信协议·rs485
Dr.kangder11 小时前
嵌入式面试总结(十九)——内存泄露
单片机·算法·面试·职场和发展·架构·硬件架构
萌新小白YXY12 小时前
SAE J1587/SAE J1708 协议笔记
笔记·单片机·嵌入式硬件
嘉子的秃头日记13 小时前
机械革命“自动修复”无法修复你的电脑
stm32·单片机·电脑
森旺电子13 小时前
电子负载使用介绍
单片机·嵌入式硬件