判断数据在内存中的存储方式算法

#include <stdio.h>

int main() {

unsigned int num = 1;

char *byte = (char*)&num;

if (*byte == 1) {

printf("Little-Endian\n");

} else {

printf("Big-Endian\n");

}

return 0;

}

大端是高字节存于低地址,低字节存于高地址。

小端是低字节存于低地址。

这里先定义一个4个字节的数为1,那么它的16进制表示就是00 00 00 01,然后将其地址转换为char类型,此时用*byte,这个表示读取内存中的第一个字节,即内存中低地址处的字节,如果读出来的值是00,代表是大端模式 ,读出来的是01,就是小端模式。

ps:如何定量的去判断一个任务的堆栈应该多大?(计算每个任务的局部变量和形参大小,以及递归调用的递归深度,比如一个函数是100字节的局部,被递归了10次,那就是1000字节)

相关推荐
文祐5 小时前
C语言用双向链表实现单调递减(递增)队列
c语言·开发语言·链表
gugucoding7 小时前
28. 【C语言】通用数据操作:`void *` 与类型无关编程
c语言·开发语言
凉、介7 小时前
ARMv8 架构下的刷 Cache 操作
c语言·笔记·学习·架构·嵌入式·arm
KaifuZeng8 小时前
通信与接口协议面试八、CAN通信
单片机·嵌入式硬件·面试·通信与接口协议
智源单片机设计9 小时前
基于单片机的直流电机双闭环调速系统设计
单片机·嵌入式硬件
kebidaixu10 小时前
两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片详解
stm32
kebidaixu10 小时前
两轮车换电 BMS 的模拟前端中颖 SH367306 AFE 芯片调试实录:四个关键问题与解决方案
stm32
灯厂码农1 天前
C语言动态内存分配完全指南(malloc、calloc、realloc、free)
java·c语言·算法
wuyk5551 天前
24. C 语言模块化:不是拆几个.c 文件那么简单
c语言·开发语言·stm32·单片机