C语言
源自1994
一切都是最好的安排
展开
-
【C基础】inline内嵌函数
C++中的inline用法内联函数的内涵:比如int g(int x) { return x + x;} int f() { return g(); } 这样f会调用g,然后g返回x + x给f,然后f继续把那个值返回给调用者。如果g是inline的话。f会被直接编译成:int f() { return x + x; } 相当于把g执行的操作直接融合到...原创 2019-06-19 15:47:00 · 449 阅读 · 0 评论 -
【C基础】位的对齐顺序
位的对齐顺序位域的使用,位域一般存放数据默认都是字节内低位对齐,就是前面的是低位,后面的是高位;如下面的代码一样;typedef struct bitmap{ char bit0:1 char bit1:1 char bit2:1 char bit3:1 char bit4:1 char bit5:1 char bit6:1 char bit7:1 };位域、结构体...原创 2019-05-10 10:47:11 · 1652 阅读 · 0 评论 -
【C基础】大小端模式和网络通讯协议
大小端的原理Endian表示数据在存储器中的存放顺序大端:(Big-Endian):指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端:(Little-Endian):指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。网络字节序:TCP/IP协议传输数据时,字节序默认大端。大端法和小端法指的是字节在内存中存储时的排列规则,而...原创 2019-05-09 16:45:21 · 1188 阅读 · 0 评论 -
【C基础】struct结构体所占空间计算方法
怎么计算struct结构所占空间?以前看过又不太记得,记个笔记,省的每次都要去找两个原则整体空间是占用空间最大的成员(的类型)所占字节数的整数倍。数据对齐原则—内存按结构体成员的先后顺序排列,当排到该成员时,其前面已摆放的空间大小必须是该成员类型大小的整数倍,如果不够则补齐,依次向后类推。举个栗子32位系统下,(64位系统下long字节数不一样)struct A{ ...原创 2019-05-07 22:45:17 · 1024 阅读 · 0 评论 -
C编程经典题目
转载:https://blog.csdn.net/mialo163/article/details/80949921预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:#define 语法的基本知识(...转载 2019-04-10 08:32:08 · 1227 阅读 · 0 评论 -
select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
一. select函数1. 用途在编程的过程中,经常会遇到许多阻塞的函数,好像read和网络编程时TCP/UDP使用的recv, recvfrom函数都是阻塞的函数,当函数不能成功执行的时候,程序就会一直阻塞在这里,无法执行下面的代码。这时就需要用到非阻塞的编程方式,使用select函数就可以实现非阻塞编程。select函数是一个轮循函数,循环询问文件节点,可设置超时时间,超时时间到了就跳过...原创 2019-03-23 17:55:32 · 685 阅读 · 0 评论 -
【UTF-8】文件转换为utf-8编码
关于带不带BOMBOM是什么?他是字节顺序标记,如下图主要用户UTF-16,UTF-32它的存在干扰了软件使用UTF-8,所以不带最好问题在日常的编程过程中,有时需要合作开发,不同的人用不同的软件打开的文件有时编码格式不一样,特别是采用了中文的GB2312等等,用软件打开可能就是乱码!!!其实一两个文件还好,手动改改也就这么回事,但是架不住多啊!为了解决这个问题,网上找了半天...原创 2019-06-21 17:32:59 · 5556 阅读 · 0 评论 -
【C基础】memset
最近写一个函数,需要对输入的参数(输入参数类型不一样)进行清零,一开始打算自己写,然后需要判断输入参数的类型等等,发现好麻烦,想起了memset,就想着研究下实际原理;头文件选其中一个就好#include <memory.h>#include <string.h>memsetvoid *memset(void *s, int c, size_t n);分...原创 2019-06-27 12:53:51 · 197 阅读 · 0 评论