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

#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字节)

相关推荐
Simple-Soft6 分钟前
指针的高级应用与技巧 - C语言的灵魂
c语言·数据结构·算法
嵌入式小站1 小时前
STM32 零基础可移植教程 03:蜂鸣器响一声,LED 跟着翻转一次
stm32·单片机·嵌入式硬件
努力努力再努力wz1 小时前
【C++高阶数据结构系列】:时间轮定时器详解:原理分析与代码实现,带你从零手撕时间轮!(附时间轮的实现源码)
c语言·开发语言·数据结构·c++·qt·算法·ui
星夜夏空991 小时前
STM32单片机学习(15) —— PC串口通信实验
stm32·单片机·学习
水饺编程1 小时前
编程基础:令牌粘贴指令,【##】
c语言·c++·windows·visual studio
Chen_harmony1 小时前
十九、数据在内存中的存储
c语言·开发语言
basketball6161 小时前
C 的 malloc/free 与 C++ 的 new/delete 一些区别
c语言·开发语言·c++
爱编码的小八嘎2 小时前
MFC深入-消息映射的实现
c语言
星夜夏空992 小时前
STM32单片机学习(14) —— STM32的串口外设
stm32·单片机·学习
我命由我123452 小时前
Visual Studio - Visual Studio 注释快捷键
java·c语言·开发语言·c++·ide·java-ee·visual studio