C语言积累
念念有余
这个作者很懒,什么都没留下…
展开
-
数据存储的大小端
数据存储是按照字节存储的,那对于半字或字大小的数据如何存储呢?分为两种情况。1、低地址存储数据的低字节,高地址存储数据的高字节,这叫做小端模式2、低地址存储数据的高字节,高地址存储数据的低字节,这叫做大段模式例如将数据0X12345678存储在0x10000--0x10003中小端模式地址0x100000x100010x100020x1000原创 2017-10-27 14:35:09 · 472 阅读 · 0 评论 -
打印发生错误的文件、函数、行号
执行发生错误时,将发生错误的文件、函数和行号,可以使用以下方式printf("%s --> %s --> %d\n", __FILE__, __func__, __LINE__);对于发生错误时,我们可以定义一个宏定义(linux当中)#define errlog(errmsg) do{\ perror(errmsg);\ printf("%s --> %s原创 2017-10-22 16:27:11 · 1054 阅读 · 0 评论 -
printf 制表符格式对齐
printf中的\t表示的是制表符,能有很好的实现列对齐。对齐的规则是,在\t之前的内容的大小为n,若n不是8的倍数,对其在右侧空格补齐为8的倍数,如果大小正好是8的倍数,则右侧再补8个空格。#include <stdio.h>int main(){ printf("name\tChinese\tMatch\tEnglish\n"); pr...原创 2019-07-05 14:34:04 · 11458 阅读 · 0 评论 -
c语言之零长度数组
我们设想这样一个场景, 我们在网络通信过程中使用的数据缓冲区, 缓冲区包括一个len字段和data字段, 分别标识数据的长度和传输的数据, 我们常见的有几种设计思路1、定长数据缓冲区, 设置一个足够大小 MAX_LENGTH 的数据缓冲区2、设置一个指向实际数据的指针, 每次使用时, 按照数据的长度动态的开辟数据缓冲区的空间.对于第一种,很明显会出现空间的浪费,比如实际buffer大小...原创 2019-08-26 16:53:43 · 335 阅读 · 2 评论