![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux C
文章平均质量分 67
芒果520
每天进步一点点
展开
-
while(1) 和 for ( ; ; )的区别
要回答这个问题,其实你各自编写一段while(1) 和 for(;)的代码,编译对比一下代码大小和汇编文件,你就大概知道了。根据上面的描述,你可能会觉得:while(1) 比 for(;while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。当然,这里额外说一下,不同代码、不同编译器,以及不同优化等级,可能最终结果有所差异。我们编写分别两个文件for.c和while.c,然后分别生成汇编代码,看下情况。若其值为真(非0),则执行for语句中指定的内嵌语句,然后执行下面第3)步;原创 2023-06-29 14:39:40 · 108 阅读 · 0 评论 -
lseek()函数与fseek()函数
C语言lseek()函数:移动文件的读写位置头文件:#include <sys/types.h> #include <unistd.h>定义函数: off_t lseek(int fildes, off_t offset, int whence);函数说明:每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾.当read()或write()时, 读写位...原创 2020-09-11 10:55:18 · 694 阅读 · 0 评论 -
strtoul()函数
C语言 strtoul()函数 ------ 字符串转换成无符号长整型unsigned long int strtoul(const char *str, char **endptr, int base)把参数str所指向的字符串根据给定的base转换为一个无符号长整数.参数:str-- 要转换为无符号长整数的字符串。 endptr-- 对类型为 char* 的对象的引用,其值由函数设置为 str 中数值后的下一个字符,即返回字符串有效数字的结束地址。 base-- ...原创 2020-07-30 16:51:38 · 3263 阅读 · 0 评论 -
tolower()和toupper()
C 库函数 int tolower(int c) 把给定的字母转换为小写字母。声明下面是 tolower() 函数的声明。int tolower(int c);参数c -- 这是要被转换为小写的字母。返回值如果 c 有相对应的小写字母,则该函数返回 c 的小写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。#include <stdio.h>#include <ctype.h> int main(){原创 2020-11-18 10:03:41 · 639 阅读 · 0 评论 -
C 宏 - assert()和rand()函数
C 库宏 void assert(int expression) 允许诊断信息被写入到标准错误文件中。换句话说,它可用于在 C 程序中添加诊断。声明下面是 assert() 宏的声明。void assert(int expression);参数expression -- 这可以是一个变量或任何 C 表达式。如果 expression 为 TRUE,assert() 不执行任何动作。如果 expression 为 FALSE,assert() 会在标准错误 stderr 上显示错误消息,原创 2020-11-18 09:58:08 · 125 阅读 · 0 评论 -
linux命令行参数解析之getopt_long()函数
getopt_long支持长选项的命令行解析,函数中的参数argc和argv通常直接从main()的两个参数传递而来。头文件 #include<getopt.h>函数原型int getopt_long(int argc,char * const argv[],const char *optstring,const struct option *longopts,int *l...原创 2020-05-07 14:56:14 · 521 阅读 · 0 评论 -
strtoul()h和 snprintf()函数
unsigned long int strtoul(const char *str, char **endptr, int base)把参数 str 所指向的字符串根据给定的 base 转换为一个无符号长整数(类型为 unsigned long int 型),base 必须介于 2 和 36(包含)之间,或者是特殊值 0。下面是 strtoul() 函数的声明。unsigned lo...原创 2020-11-18 10:04:07 · 140 阅读 · 0 评论 -
Linux之strsep函数
strsep函数用于分割字符串,函数原型如下:char *strsep(char **s, const char *ct);s为指向欲分割的字符串,ct为分隔符,函数将返回分隔符前面的字符串,s将指向分隔符之后的字符串,实例如下:#include <stdio.h>#include <string.h>int main(void){ c...原创 2020-11-18 10:05:40 · 551 阅读 · 0 评论 -
qsort()与bsearch()
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*)) 对数组进行排序。声明下面是 qsort() 函数的声明。void qsort(void *base, size_t nitems, size_t size, int (*compar)(const v...原创 2020-04-03 16:57:31 · 144 阅读 · 0 评论 -
Source Insight4.0相关设置
1.没有Project Windows的解决方法修复办法:View->Panels->Project Files/Project Symbols等,然后重启程序即可2.设置文件字体大小Options --> File Type Options(Alt + Y) 即可打开字体设置页面,直接修改Default即可,其中C/C++ Source File也会自动改变。自...原创 2020-03-05 20:44:48 · 707 阅读 · 0 评论 -
select函数详解
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就...原创 2020-02-16 21:10:46 · 311 阅读 · 0 评论 -
printf 宏 可变参数
1 编译器内置宏先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。ANSI C标准中有几个标准预定义宏(也是常用的):__LINE__:在源代码中插入当前源代码行号;__FILE__:在源文件中插入当前源文件名;__DATE__:在源文件中插入当前的编译日期__TIME__:在源文件中插入当前编译时间...原创 2020-01-03 11:35:14 · 528 阅读 · 0 评论 -
数组实现一个栈结构
#include<stdio.h>#define STACK_SIZE 64 /栈大小/#define TOP_OF_STACK -1 /栈顶位置/typedef int ElementType; /栈元素类型/#define SUCCESS 0#define FAILURE -1/定义栈结构/typedef struct StackInfo{int topOfSta...原创 2020-01-02 16:06:32 · 152 阅读 · 0 评论 -
sizeof与strlen的区别
sizeof是一个关键字不是函数,发生在编译时刻。sizeof是C/C++中的一个运算符,其作用是返回一个对象或者类型在内存中所占用的字节数。 注意:sizeof后面如果是类型则必须加括号,如 sizeof(char);而如果是变量名则可以不加括号,如 sizeof a; 但是建议使用时 均加上括号。sizeof不能返回动态地被分配的数组的大小。 总结如下,当参数...原创 2019-12-20 17:44:34 · 139 阅读 · 0 评论 -
动态链接(dynamic link)与静态链接(static link)
静态库与动态库 静态库的所有数据都会被整合进目标代码中,因此编译成的文件比较大。它的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为缺点,(1)首先就是系统空间被浪费了。这是显而易见的,想象一下,如果多个程序链接了同一个库,则每一个生成的可执行文件就都会有一个库的副本,必然会浪费系统空间。(2)再者,一旦发现了静态函转载 2016-04-15 11:40:22 · 3774 阅读 · 0 评论