
C
文章平均质量分 69
Bluenapa
这个作者很懒,什么都没留下…
展开
-
C语言如何定义带“默认参数”的函数?
使用C++开发过程序时,定义函数可以指定默认参数,例如 void fun(int x, int y=3); 在调用 fun() 时第二个参数可以不传递,此时 fun() 函数默认第二个参数等于 3,例如 f(1) 就相当于 f(1,3)。这是一个很好用的特性,那么在C语言程序开发中,是否也可以定义带“默认参数”的函数呢?有“默认参数”的C语言函数首先应该清楚,目前C语言还没有原生支持带默认参数的函数,也就是说下面这样的C语言代码是非法的:void fun(int x, int y =3)..原创 2022-03-16 15:21:45 · 10574 阅读 · 0 评论 -
8位有符号数的范围为-128 ~ +127 深入浅出探究
8位有符号数的范围为-128 ~ +127,为什么不是 -127 ~ 127,-127 ~ 128等等?这是一个困惑了我几年的问题,它让我对现在的教科书和老师极其不满!从我二三十年前开始摸电脑时,就几乎在每一本计算机基础、C语言、C++教科书上都说,8位有符号的取值范围是-128~+127,为什么不是-127~+127呢,后来的java int的聚值范围,在32位计算,-2^31 ~ +2^31-1,可是,却从来没有任何一本教科书或一个老师比我解释过这个问题。 后来在工作上或者是什么地方又没有直接遇原创 2022-03-14 18:24:01 · 5225 阅读 · 3 评论 -
libevent简介
首先给出官方文档吧:http://libevent.org,首页有个Programming with Libevent,里面是一节一节的介绍libevent,但是感觉信息量太大了,而且还是英文的-。-(当然,如果想好好用libevent,看看还是很有必要的),还有个Reference,大致就是对各个版本的libevent使用doxgen生成的文档,用来查函数原型和基本用法什么的。下面假定已经学习过基本的socket编程(socket,bind,listen,accept,connect,recv,send原创 2021-08-24 17:07:13 · 310 阅读 · 0 评论 -
socket 连接样例
和C语言教程一样,我们从一个简单的“Hello World!”程序切入socket编程。本节演示了 Linux 下的代码,server.cpp 是服务器端代码,client.cpp 是客户端代码,要实现的功能是:客户端从服务器读取一个字符串并打印出来。服务器端代码 server.cpp: #include <stdio.h>#include <string.h>#include <stdlib.h>#include <unistd.h>..原创 2021-08-18 17:10:44 · 373 阅读 · 0 评论 -
dlopen系列函数详解
Linux提供了一套API来动态装载库。下面列出了这些API: dlopen:该函数将打开一个新库,并把它装入内存。该函数主要用来加载库中的符号,这些符号在编译的时候是不知道的。这种机制使得在系统中添加或者删除一个模块时,都不需要重新进行编译。 dlsym:在打开的动态库中查找符号的值。 dlclose:关闭动态库。 dlerror:返回一个描述最后一次调用dlopen、dlsym,或dlclose的错误信...原创 2021-07-29 10:45:33 · 16557 阅读 · 0 评论 -
库函数用法汇总-字符串
1. snprintf #include <stdio.h>int main(){ char buffer[30]; char *str = "hello!"; int res = snprintf(buffer, 3, "%s\n",str); printf("buffer is %s\nres is %d", buffer,res); return 0;}说明:buffer中存入的是 包括 /0 的字符串返回值是str...原创 2021-06-28 16:08:45 · 216 阅读 · 0 评论 -
函数指针作为返回值的写法
C语言指向函数的指针承载的信息比较复杂,组织起来要素要写全。根据指向函数的指针的书写语法,下面的代码就是一个返回函数指针的函数:int (*f(void))(int){//f是函数,没有参数,返回指向一个函数的指针;这个被指向的函数有一个int型形参,且返回一个int值 return fun;//fun是个函数名,必须具备一个int形参、返回int值的要求}以下代码可以验证上述函数的正确性:<pre t="code" l="cpp">//#include "stdafx.h"//If the v原创 2021-06-16 17:30:20 · 2434 阅读 · 1 评论 -
字符串数组和字符串指针的区别
1.字符指针可以指向一个字符串。 我们可以用字符串常量对字符指针进行初始化。例如,有说明语句: char *str = "This is a string."; 是对字符指针进行初始化。此时,字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。 这里要注意字符指针与字符数组之间的区别。例如,有说明语句: char string[ ]="This is a string."; 此时,string...原创 2021-04-28 16:03:24 · 2012 阅读 · 1 评论 -
c语言函数
1. 内存申请 calloc, calloc(num,size) 申请num个size大小的空间。2. 字符串strncpy (str1,str2,num)char* res;char* str = "abcd";res = calloc( strlen(str)+1, sizeof(char));strncpy(res, str, sizeof(str));原创 2021-04-10 19:50:15 · 169 阅读 · 0 评论