_00_C语言
文章平均质量分 81
llzhang_fly
这个作者很懒,什么都没留下…
展开
-
原码、反码、补码
原码,反码,补码的产生过程,就是为了解决,计算机做减法和引入符号位(正号和负号)的问题。1、整数在计算机中的表示。在计算机中,整数采用补码表示。当前主流编译器中整型在内存中占用四个字节,共32位。2、原码、补码、补码。原码:第一位为符号位,其余位表示数值,如-1的原码:1,000...0001(两个1之间32个0)。反码:正数的反码就是其原码;负数的反码为符号位不变,数值位按位取反。如-1的补码为1,111...1110...原创 2021-11-05 21:49:33 · 2537 阅读 · 0 评论 -
C语言如何打印可变参数的?
#include <stdio.h>#include <stdarg.h> // 可变参数头文件/*【C语言如何在可变参数函数中使用printf?】应使用v*系列的函数来实现。对比下printf与vprintf函数原型:void printf(const char *format, ...);void vprintf(const char *format, va_list ap);可以看出二者的差别。vprintf才接收va_list类型,printf接收的是不.原创 2021-06-02 22:42:24 · 935 阅读 · 0 评论 -
c语言NULL和0区别及NULL详解
转载出处:https://www.cnblogs.com/lvdongjie/p/6340184.html先看下面一段代码输出什么:#include<stdo.h>int main(){ int *p=NULL; printf("%s",p); }输出<null> ,单步调试可以看出执行int *p=NULL,p的值为0x00000000,可以看出,NULL在实际底层调用中就是0,在C语言中,NULL和0的值都是一样的,但是为了目的和用途及.转载 2021-02-22 22:12:20 · 4660 阅读 · 0 评论 -
linux 改变GCC编译器的字节对齐方式
linux C 字节对其简介在C语言中,结构是一种复合数据类型,其构成元素既可以是基本数据类型(如int、long、float等)的变量,也可以是一些复合数据类型(如数组、结构、联合等)的数据单元。在结构中,编译器为结构的每个成员按其自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。 例如,下面的结构各成员空间分配情况: struct test { ch...原创 2020-09-24 23:49:58 · 4670 阅读 · 1 评论 -
strchr字符查找函数族;strchrnul()
https://blog.csdn.net/jasonchen_gbd/article/details/80069134Linux中的字符串和字节序列处理函数【Y】字符串查找,有库函数,可以起到事半功倍的效果,不但是代码量减少,而且执行效率更高;实际中使用到的字符串查找函数有:strchr(), strrchr(), strchrnul();目录函数描述2. 实...原创 2019-09-06 23:28:17 · 1792 阅读 · 0 评论 -
sizeof 与 strlen区别
1 /* 2 明确概念: 3 1)sizeof是一个关键字,目的是求某类型或数据占用实际内存的字节数;对于结构体类型,需考虑结构体对其方式 4 2)strlen是一个函数,目的是求字符串的长度,从字符串第一个元素到第一个'\0'之间的所有数据 5 如下例所示: 6 有两种表示字符串的方法:字符串形式和字符形式 7 有两种定义数组的方法...原创 2019-07-21 18:00:39 · 162 阅读 · 0 评论 -
内联函数简介
https://blog.csdn.net/zqixiao_09/article/details/50877383https://blog.csdn.net/caoyan_12727/article/details/51824073在学习编码规范时,无意中看到了内联函数,记得刚毕业找工作复习时,偶尔也看到过内联函数,之前没有理解,所以现在再拉出来重新学习下:1. 什么是内联函数2....转载 2019-02-04 15:15:12 · 169 阅读 · 0 评论 -
C语言的灵魂——指针
最新工作中,遇到一个关于指针应用的问题,感觉对指针运用太不熟悉了,所以把指针拎出来再看了一次,在此做一些笔记,便于后续温习;本帖先说遇到的问题,再说重读C指针的的知识点;一、遇到问题:问题场景: 进程A和进程B利用 msg消息通信时,进程A能够收到进程B发来查询的消息,但进程A发送的应答消息进程B没接收到;原因分析: ...原创 2018-06-23 13:17:03 · 613 阅读 · 0 评论 -
回调函数(转载)
【*****】什么是回调函数,为什么要使用回调函数 函数的概念很好理解,就是把某个任务独立出来,封装在一起,然后给它取个名字,它可以有参数和返回值。 那么,回调函数是个什么呢?它和函数到底有何异同?既然已经有了函数,为啥还非要生出个回调函数来?我觉得要真正理解一个概念,必须要先理解它存在的意义,也就是它为什么要存在,它能带来什么方便之处。 首先,回调函数也是函数,就像白马也是马一样。它具有函...转载 2018-05-20 19:18:22 · 356 阅读 · 0 评论 -
根据年月日计算今天是一年中的第几天
根据年月日计算今天是一年中的第几天static char daytab[2][13]= { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} };int day_of_year(int year, int m...原创 2018-04-24 20:46:49 · 6478 阅读 · 0 评论 -
堆和栈的区别(转过无数次的文章)
堆和栈的区别(转过无数次的文章)一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结...转载 2018-04-17 17:42:16 · 190 阅读 · 0 评论 -
【malloc 申请的变量、与局部变量、全局变量的区别】
【malloc 申请的变量、与局部变量、全局变量的区别】 1. 无论全局变量还是局部变量都是系统自动分配管理的,内存分配在:静态储存区和动态储存区即栈; 2. 全局变量:如果不人为初始化,系统自动初始化为0; 3. 静态局部变量:编译时自动赋初始值(数值型初始化为0,字符型初始化为'\0',指针初始化为NULL); 4. 函数内局部变量:如果不初始化他的值是不确定的,因为每...原创 2018-04-17 17:25:32 · 9278 阅读 · 0 评论 -
通信大小端字节序相关问题总结
[备注:本文主要是将最新box项目中,遇到的问题做以总结梳理,便于加深印象和后续查阅。本文相关资料主要来源于网络,包括转载的一些资料]遇到问题:1、何为大、小端存储。2、若协议中提及“消息传输采用大端模式(Big-Endian)。在一个 Byte 中, bit7 为 MSB, bit0 为 LSB。 ”,那么该协议数据传输模式是?3、如何区分大小端存储,那种存储类型比较常用?4、X86体系CPU、...原创 2018-04-17 11:02:30 · 2770 阅读 · 0 评论