C语言
文章平均质量分 79
万木春《Linux 后端开发工程实践》
这个作者很懒,什么都没留下…
展开
-
extern "C" 浅析
extern "C" 浅析 因为C++中允许同名函数存在,所以编译器会对函数名重新编码。当C++代码包含C语言的头文件时,重新编码的函数名如果与C语言库中的原函数名不一致,就会造成找不到函数的情况。为了让用C语言实现的函数可以在C++中调用,需要在头文件中实现的函数可以在C++中调用,需要在头文件中加点东西就可以了。#ifdef __cplusplusextern "C" {#endif#include #include void str_reverse(char *原创 2010-12-12 11:07:00 · 724 阅读 · 0 评论 -
extern “C” 陷阱
extern “C” 陷阱extern “C”通常使用在C++中,由于C++支持函数重载,命名空间等技术,故C++编译器在编译C++代码时会对函数进行签名,也就是说编译后的函数名将发生变化。例如我们有如下的代码:test.cppint fun(int a){///nothing.} 在Ubuntu下用g++编译这个cpp文件获取它的目标文件test.o,命令:原创 2013-06-04 22:27:10 · 2969 阅读 · 0 评论 -
memcpy Linux内核实现引发的思考:为什么嵌入式汇编中不用指定段寄存器
memcpy Linux内核实现引发的思考:为什么嵌入式汇编中不用指定段寄存器最近买了王爽的汇编语言和Linux内核完全注释,准备开始好好学习一下汇编语言,并看看早期的Linux(0.11版本)源代码实现。之前舍友面试TX是被问过memcpy什么时候不能用,这种问题如何解决?答:当dest,src都指向同一个数组且dest>src,那么当n大于abs(dest > src),则这个时候原创 2013-05-18 11:21:27 · 3351 阅读 · 0 评论 -
判断系统CPU是大端还是小端 详解
判断系统CPU是大端还是小端 详解所谓的大端小端就是CPU在存储数据的时候是从高地址开始存储还是低地址开始存储。例如在sizeof(int) = 2的系统中,1 + (2 )= 1 + 512 = 513,我们把这个值赋值给int nTemp = 1 + (2 。我们假定系统分配给变量nTemp的地址空间为:0x0000FF08到0x0000FF09,那么0x0000FF08开始的8个位为原创 2012-04-22 16:23:11 · 6137 阅读 · 0 评论 -
接口完备的高精度整数计算类
接口完备的高精度整数计算类 做ACM的时候经常会遇到高精题,把自己封装好的高精类跟大家分享。实现方式就是模拟每个位的计算,把每个位的数字保存到数组中。具体实现可以看代码,都有注释。代码如下:/* Author: ACb0y FileN原创 2011-10-18 23:21:29 · 1692 阅读 · 0 评论 -
Unix/Linux线程同步互斥量的使用
Unix/Linux线程同步互斥量的使用 在main函数中创建3个子线程,并实时输出当前子线程数,当每创建一个子线程的时候,就对线程数变量加一,每个子线程运行3秒,3秒之后对子线程数变量值减一。当线程数为0时主线程退出。在对子线程数的读写过程中都使用到了线程同步的原创 2011-10-12 23:19:43 · 1979 阅读 · 0 评论 -
数字字符串转整型数据的4种方法
数字字符串转整型数据的4种方法<br />在项目开发中,我们经常需要把数字字符串(值在整型数据的能够表示的范围内)转换成整型数据,这里我总结C/C++中4种不同转换方式:<br />1、使用system call调用atoi()来实现。<br />2、使用system call调用sscanf()来实现。<br />3、使用C++的字符串流对象来实现。<br />4、自己手动转换。<br />Demo代码如下:<br />/* FileName: main.cpp Author: ACb0y C原创 2011-03-27 23:40:00 · 6572 阅读 · 0 评论 -
C/C++内存泄露故障(Memory Leak Faults)之简单篇
C/C++内存泄露故障(Memory Leak Faults)之简单篇Demo代码如下:/* FileName: MemoryLeakFaults.cpp Author: ACb0y Create Time: 2011年2月26日22:09:59 Last modify Time: 2011年2月26日22:53:04 */#include using namespace std;typedef int type;struct node { type原创 2011-02-26 22:56:00 · 2018 阅读 · 0 评论 -
手把手教你实现自定义的应用层协议
1.简述互联网上充斥着各种各样的网络服务,在对外提供网络服务时,服务端和客户端需要遵循同一套数据通讯协议,才能正常的进行通讯;就好像你跟台湾人沟通用闽南语,跟广东人沟通就用粤语一样。实现自己的应用功能时,已知的知名协议(http,smtp,ftp等)在安全性、可扩展性等方面不能满足需求,从而需要设计并实现自己的应用层协议。2.协议分类2.1按编码方式二进制协议 比如网络通信运输层中的tcp原创 2017-03-11 17:03:07 · 8807 阅读 · 3 评论