![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
çheryアΔan
职业 专业
展开
-
结构体 字节对齐 __align() __attribute((aligned (n))) #pragma pack(n)
#pragma pack(4)struct mystu{ char a ; int b ;};#pragma pack()GCC推荐的对齐指令如下:_attribute_((packed))和_attribute_((aligned(n))) armcc一般是专门针对arm芯片开发时用的编译器,语法除了遵守标准C语法外,还支持arm体系下特有的语法规则。gcc应用...转载 2018-07-17 11:17:18 · 3321 阅读 · 0 评论 -
C/C++——函数调用栈
ARM体系ARM微处理器共有37个寄存器,其中31个为通用寄存器,6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可编程访问的,取决于微处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R0~R15、一个或两个状态寄存器都是可访问的。有三个特殊的通用寄存器:寄存器R13:在ARM指令中常用作堆栈指针SP寄存器R14:也称作子程序连接寄存器(Subroutine ...原创 2019-07-01 19:47:44 · 1114 阅读 · 0 评论 -
C++/C 宏定义(define)中 # ## 的含义
#是字符串化的意思,出现在宏定义中的#是把跟在后面的参数转成一个字符串;#define strcpy__(dst, src) strcpy(dst, #src) strcpy__(buff,abc) 相当于 strcpy(buff,“abc”)##是连接符号,把参数连接在一起#define FUN(arg) my##arg则 FUN(A...转载 2018-07-20 18:10:48 · 1699 阅读 · 0 评论 -
lwip调试 DEBUG printf hu hd hx lu ld lx
d,lx,ld,lu //这几个都是输出32位的hd,hx,hu //这几个都是输出16位数据的,hhd,hhx,hhu //这几个都是输出8位的,lld,ll,llu,llx //这几个都是输出64位的%hu //代表以 unsigned short格式输出整数%hx //代表以16进制的 输出short类型的整数#define X8_F "hhx"#define U16...原创 2018-07-17 12:27:08 · 1010 阅读 · 0 评论 -
Sqlite3 时间格式定制 毫秒数 两位小数
#include <ctime> #include <sys/time.h> struct timeval tv; char buf2[64]; gettimeofday(&tv, NULL); char buf[128] = {0}; strftime(buf2, sizeof(buf)-1...原创 2018-07-17 11:27:18 · 1808 阅读 · 0 评论 -
C/C++——extern 、extern "C"、数组名和指针名的区别。
extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。也就是说extern有两个作用,extern “C”当它与"C"一起连用时,如: extern “C” void fun(int a, int b);则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名,而不是...原创 2019-07-06 21:05:40 · 682 阅读 · 0 评论