2025-11-20 06:59:37
函数指针占的字节数要看机器架构和位数。32位系统里占4字节,64位系统占8字节,ARM芯片通常是4字节。比如声明int (func)(void)这种类型,编译器会自动分配对应大小的指针。不同平台差异大,得先确认环境才能确定。
为什么这样算呢?因为函数指针本质是存储函数地址的指针变量。x86架构的指针大小和系统位数挂钩,32位时指针占4字节(0x00000000~0xFFFFFFFF),64位时扩展到8字节(0x00000~0xFFFFFFFFFFFFFFFF)。ARM芯片采用LPC寻址,4字节足够存地址(0x00000000~0xFFFFFFFF)。数据来源:Intel® 64 and IA-32 Architectures Software Developer’s Manual和ARM Architecture Reference Manual。比如在嵌入式开发里,ARM单片机用4字节函数指针能省内存。但音频转写可能会出现“字节数是8个字节的”这种错误,或者“ARM架构的函数指针通常是4字节的”这种标点混乱,实际不影响核心结论。
本题链接: