
C
文章平均质量分 53
C语言是一门面向过程的编译型语言,它的运行速度极快,仅次于汇编语言。C语言是计算机产业的核心语言,操作系统、硬件驱动、关键组件、数据库等都离不开C语言;不学习C语言,就不能了解计算机底层。
mayue_csdn
这个作者很懒,什么都没留下…
展开
-
C语音思维导图
C语音总结根据思维导图判断C语音掌握情况。原创 2021-07-22 09:49:29 · 259 阅读 · 0 评论 -
C语言里面的%d、%u、%h等用法说明
文章目录汇总参考资料汇总%d int 有符号10进制整数%u unsigned int 无符号10进制整数%hd short 有符号10进制短整形%hu unsigned short 无符号10进制短整形%ld long %lu unsigned long %lld long long%llu unsigned long long原创 2020-12-29 11:01:52 · 21272 阅读 · 0 评论 -
shutdown()函数:优雅地断开TCP连接
文章目录shutdown()函数调用shutdown,但没有调用closeshutdown()函数shutdown()函数:优雅地断开TCP连接http://c.biancheng.net/view/2354.html调用shutdown,但没有调用closehttp://ddrv.cn/a/334154如果我调用shutdown(fd,SHUT_RDWR),但没有调用close(fd),会发生什么?在网络上,什么都没有.套接字中的未来recv()和read()调用将返回零,表示流结束.原创 2020-12-25 16:26:13 · 895 阅读 · 0 评论 -
宏定义结构体偏移计算
文章目录参考示例说明参考https://www.cnblogs.com/persistentlyworking/p/3211169.htmlhttps://blog.youkuaiyun.com/m0_48836226/article/details/106946081示例包括正向计算拷贝和反向计算拷贝两种用法。#include<stdio.h>typedef unsigned int uint32;#define OFFSETOF(type,field) ((uint32)(&(转载 2020-12-21 19:48:58 · 235 阅读 · 0 评论 -
Linux 常用C函数
原文:http://net.pku.edu.cn/~yhf/linux_c/转载 2020-09-21 11:13:02 · 123 阅读 · 0 评论 -
C 标准库 - stdio.h
阅读目录C 标准库 - stdio.hgetchar和putchargetc和putcgets和putsfgetc和fputcfgets和fputsC 标准库 - stdio.hhttps://www.runoob.com/cprogramming/c-standard-library-stdio-h.htmlgetchar和putchargetcharC 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为转载 2020-09-17 15:38:26 · 364 阅读 · 0 评论 -
C 库函数 - perror()
C 库函数 - perror()https://www.runoob.com/cprogramming/c-function-perror.htmlperror和strerror的使用和区别https://blog.youkuaiyun.com/diediexiaomi/article/details/76862248转载 2020-08-05 09:19:56 · 167 阅读 · 0 评论 -
open与fopen
open与fopenhttps://blog.youkuaiyun.com/qq_39990094/article/details/89509915C语言中open与fopen的区别https://blog.youkuaiyun.com/az44yao/article/details/45042801转载 2020-08-04 09:40:22 · 117 阅读 · 0 评论 -
C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理
原文:https://blog.youkuaiyun.com/zcc1229936385/article/details/80826132C语言中,数组初始化的方式主要有三种:1、声明时,使用 {0} 初始化;2、使用memset;3、用for循环赋值。建议使用memset移植性好,声明时,使用 {0} 初始化可能存在兼容性问题。...转载 2020-06-24 15:10:09 · 593 阅读 · 0 评论 -
嵌入式串口打印信息重定向到当前终端界面
文章目录原文Linux中重定向原文https://blog.youkuaiyun.com/wuquan_1230/article/details/105782687在嵌入式Linux系统中,有时通过远程(telnet或者ssh)登录到现场设备,想看程序的实时打印的调试信息,需要将输出到串口的调试信息重定向到当前登录的终端界面上。也可以将程序重新启动到当前终端界面,但是在程序出现问题时,如果重启程序,可能会破坏了问题现场,再查找问题就不好查找了。下面是实现的代码,可以将输出到串口的日志信息,重定向到当前的tel转载 2020-06-05 17:09:05 · 1301 阅读 · 0 评论 -
#pragma 预处理指令详解
#pragma 预处理指令详解参考:https://blog.youkuaiyun.com/mayue_web/article/details/88980206原创 2019-04-02 20:21:26 · 179 阅读 · 0 评论 -
C 库函数 - strtol()
描述C 库函数 long int strtol(const char *str, char **endptr, int base) 把参数 str 所指向的字符串根据给定的 base 转换为一个长整数(类型为 long int 型),base 必须介于 2 和 36(包含)之间,或者是特殊值 0。可用于将字符串转换成整数。声明下面是 strtol() 函数的声明。#include <...转载 2019-08-12 20:13:38 · 546 阅读 · 0 评论 -
C 库函数 - strtoul()-把字符串转换为一个指定进制的无符号长整数
描述C 库函数 unsigned long int strtoul(const char *str, char **endptr, int base) 把参数 str 所指向的字符串根据给定的 base 转换为一个无符号长整数(类型为 unsigned long int 型),base 必须介于 2 和 36(包含)之间,或者是特殊值 0。声明下面是 strtoul() 函数的声明。uns...转载 2019-06-20 20:43:50 · 650 阅读 · 0 评论 -
C语言面试题
1、考点宏定义和运算符优先级#include <stdio.h>#define SUM(a,b,c) ++a+(b+c++)int main(){ int a=2,b=3,c=4; int d = SUM(a,b,c)/SUM(a,b,c); printf("d:%d \n",d); return 0;}注意:宏定义是否有括号,运算符优先级() ...原创 2019-05-14 19:55:51 · 303 阅读 · 0 评论 -
C 库函数 - getchar()
概要所属标准库:C 标准库 - <stdio.h>描述C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数。声明下面是 getchar() 函数的声明。int getchar(void)返回值该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件...原创 2019-04-24 14:35:18 · 3610 阅读 · 0 评论 -
C语言中结构体赋值的讨论
转自:https://blog.youkuaiyun.com/hazir/article/details/9429017今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题。那么就总结一下C语言中结构体赋值的问题吧:结构体直接赋值的实现下面是一个实例:#include <...转载 2019-04-04 14:49:48 · 1319 阅读 · 0 评论 -
C语言二维数组作为函数参数的使用
c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:方法一, 形参给出第二维的长度。#include <stdio.h>void func(int n, char str[][5] ){int i;for(i = 0; i < n; i++)printf("\nstr[%d] = %s\n", i, str[i]);}int main(){cha...转载 2019-01-22 10:17:56 · 21465 阅读 · 1 评论 -
GCC编译C语言程序的过程
gcc/g++编译流程四步骤1.预处理,生成预编译文件(.i文件):gcc –E hello.c –o hello.i2.编译,生成汇编代码(.s文件):gcc –S hello.i –o hello.s3.汇编,生成目标文件(.o文件):gcc –c hello.s –o hello.o4.链接,生成可执行文件:gcc hello.o –o hello//hello即为可...转载 2018-11-16 18:35:16 · 2936 阅读 · 1 评论 -
C 语言内存分配函数
1、ANSI C 中的内存空间分配函数ANSI C 中有 3 个分配内存的函数:malloc,calloc,realloc。函数原型:#include <stdlib.h>void *malloc(size_t size);void free(void *ptr);void *calloc(size_t nmemb, size_t size);void *realloc...翻译 2018-10-24 20:51:51 · 1691 阅读 · 0 评论 -
结构体、结构体内存对齐
1、结构体1.1、概述在C语言中,除了常见的基本数据类型(整数类型short、int、long和浮点类型float、double)外,还有派生类型,如指针类型、数组类型、结构类型、共用体类型等。结构体是基本数据类型不能满足需求时,用户自己指定的一种数据结构,由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体。声明一个结构休类型的一般形...翻译 2018-10-23 20:41:36 · 284 阅读 · 0 评论 -
如何确认char到底是signed char还是unsigned char
signed -128~127unsigned char 0~127char -128 到 127 或 0 到 255今天遇到一个问题,在新的开发板和环境下,同样的程序打印提示信息范围不对,某char字符打印出来是202,但协议范围是0到-100,怀疑是该编译工具链处理char是当做unsigned char来处理的。下面通过如下程序交叉编译拷贝到设备验证char到底是signed cha...原创 2019-09-04 20:21:10 · 1176 阅读 · 0 评论 -
C语言判断文件夹或者文件是否存在的方法
方法一:access函数判断文件夹或者文件是否存在函数原型: int access(const char *filename, int mode);所属头文件: #include <io.h> //windows #include <unistd.h> //linuxfilename:可以填写文件夹路径或者文件路径mode:0 (F_OK) 只判断是否存...转载 2019-08-12 20:47:04 · 2533 阅读 · 0 评论 -
getaddrinfo、getnameinfo、gethostbyname、gethostbyaddr
概要gethostbyname, gethostbyaddr是不可重入函数;已经被getaddrinfo, getnameinfo替代。介绍getaddrinfohttps://blog.youkuaiyun.com/mayue_web/article/details/98102013getnameinfohttps://blog.youkuaiyun.com/mayue_web/article/detail...原创 2019-08-01 21:23:53 · 672 阅读 · 0 评论 -
getaddrinfo使用
getaddrinfo根据域名获取IP等信息。头文件#include <sys/types.h>#include <sys/socket.h>#include <netdb.h>函数原型int getaddrinfo(const char *node, const char *service, cons...原创 2019-08-01 21:17:40 · 8394 阅读 · 0 评论 -
getnameinfo使用
这个函数与getaddrinfo互补,它以一个套接口地址为参数,返回一个描述主机的字符串和一个描述服务的字符串。头文件#include <sys/socket.h>#include <netdb.h>函数原型int getnameinfo(const struct sockaddr *sa, socklen_t salen, ...原创 2019-08-01 20:36:07 · 10472 阅读 · 0 评论 -
gethostbyaddr根据ip地址获取主机信息
gethostbyaddr根据ip地址获取主机完整信息函数原型:#include <netdb.h>#include <sys/socket.h> /* for AF_INET */struct hostent *gethostbyaddr(const void *addr,socklen_t len, int type);参数:const void *ad...原创 2019-08-01 19:36:45 · 2543 阅读 · 1 评论 -
gethostbyname根据域名获取ip地址
gethostbyname函数根据域名解析出服务器的ip地址,它返回一个结构体struct hostentstruct hostent结构体#include <netdb.h>struct hostent { char * h_name; / *主机的正式名称* / char ** h_aliases; / *主机的别名,一个主机可以有多个别名* / int h_a...原创 2019-08-01 19:02:36 · 1031 阅读 · 0 评论 -
C 库函数 system/WIFEXITED/WEXITSTATUS
文章目录描述声明参数返回值实例WIFEXITED/WEXITSTATUS函数systerm两层含义函数实例详解解释参考资料描述C 库函数 int system(const char *command) 把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。声明下面是 system() 函数的声明。#include <stdlib.h>...转载 2020-04-29 09:40:21 · 9326 阅读 · 1 评论 -
C整型上下限INT_MAX INT_MIN及其运算
文章目录介绍INT_MAX,INT_MIN数值大小关于INT_MAX INT_MIN的运算实例参考资料介绍C中常量INT_MAX和INT_MIN分别表示最大、最小整数,定义在头文件limits.h中。#include <limits.h> #define INT_MAX 2147483647#define INT_MIN (-INT_MAX - 1)INT_MAX,INT...转载 2020-04-28 14:22:26 · 2486 阅读 · 0 评论 -
C获取随机数
文章目录srand()和rand()srandom()和random()rand 与random的区别/dev/random 或 /dev/urandomsrand()和rand()声明#include <stdlib.h>int rand(void);int rand_r(unsigned int *seedp); //线程安全版本void srand(unsigned ...原创 2020-04-28 11:08:02 · 939 阅读 · 0 评论 -
strcasecmp和strncasecmp
文章目录查看帮助文档功能声明描述返回值实例查看帮助文档man strcasecmp功能strcasecmp, strncasecmp - 比较忽略大小写的两个字符串声明#include <strings.h>int strcasecmp(const char *s1, const char *s2);int strncasecmp(const char *s1, co...原创 2020-04-22 09:49:40 · 609 阅读 · 0 评论 -
string.h和strings.h的区别
strings.h头文件是从BSD系UNIX系统继承而来,里面定义了一些字符串函数,如bzero等。这些函数曾经是posix标准的一部分,但是在POSIX.1-2001标准里面,这些函数被标记为了遗留函数而不推荐使用。在POSIX.1-2008标准里已经没有这些函数了。如下:int bcmp(const void *, const void *, size_t); /* 用memcmp替代 */...转载 2020-04-22 09:18:21 · 1142 阅读 · 0 评论 -
查看c库函数源代码glibc
文章目录https://blog.youkuaiyun.com/jiangzhengdong/article/details/8766758glibc下载网址:http://ftp.gnu.org/gnu/libc/原创 2020-04-17 17:28:59 · 1410 阅读 · 0 评论 -
变长结构体
文章目录什么是变长结构体定义变长结构体变长结构体实例参考资料什么是变长结构体变长结构体是由gcc扩展的一种技术,它是指其最后一个成员的长度不固定(flexible array member,也叫柔性数组)。使用范围:数据长度不固定,例如协议对接中有固定的头结构体,数据结构体不固定。定义变长结构体struct MyData { int nLen; char data[0]...原创 2020-04-17 17:24:18 · 1674 阅读 · 0 评论 -
strcpy、strncpy、memcpy、memmove
文章目录strcpy描述和声明参数要求实例strncpy描述和声明参数要求实例memcpy描述和声明参数要求实例memmove描述和声明strlen注意事项字符数组中间有结束符'\0'拷贝情况内存区域重叠拷贝strcpy和strncpy比较strncpy和memcpy比较memcpy和memmove比较参考资料strcpy描述和声明描述C 库函数 char *strcpy(char *de...原创 2020-04-14 10:59:43 · 893 阅读 · 0 评论 -
C语言标准输入输出缓冲区
阅读目录概念缓冲区类型1. 全缓冲2. 行缓冲3. 不带缓冲缓冲区特征1. 缓存特征2. 缓冲区的大小3. 缓冲区的刷新(清空)4. 缓冲类型和大小确认函数缓冲实例FILE结构定义参考资料概念缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入...原创 2020-04-10 10:27:56 · 3294 阅读 · 0 评论 -
C库函数 system
阅读目录描述声明参数返回值实例其他示例stdlib.h 中定义的函数参考资料C 标准库 - <stdlib.h>描述C 库函数 int system(const char *command) 把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。声明下面是 system() 函数的声明。int system(const char...转载 2020-04-01 09:56:39 · 454 阅读 · 0 评论 -
while(1){}和while(1);
阅读目录while(1);while(1){ 代码 }参考资料单片机中while(1)有两种用途,while(1);意义:这是一个死循环,代码不再向下执行。用途:一般在调试代码时,为了检测一部分代码是否OK,防止后面的代码干扰执行结果,会在观测点加上while(1);有些代码检测到运行错误时,会抛出错误(打印、设置错误码),然后进入while(1);机器需要复位时,停止喂看门狗,...转载 2020-03-21 16:58:12 · 14301 阅读 · 1 评论 -
linux C语言头文件
/C语言标准头文件:#include &lt;assert.h&gt; // assert断言#include &lt;stdio.h&gt; // 定义输入/输出函数 #include &lt;stdlib.h&gt; // 定义杂项函数及内存分配函数 #include &lt;string.h&gt; // 字符串处理#include &am原创 2020-03-07 11:29:50 · 504 阅读 · 0 评论