C
yyyzhhhhh
123
展开
-
exe及dll中的内存不能混用
exe文件和dll文件中都各自有自己的内存管理句柄,即_crtheap,也即是两者对内存的管理是独立的,exe中不能free掉dll中malloc的内存、参考:https://blog.csdn.net/ceabie/article/details/6098820转载 2020-11-21 23:32:37 · 240 阅读 · 0 评论 -
c语言中的可变参数
https://www.cnblogs.com/zhaobinyouth/p/8781915.html转载 2020-08-24 00:43:51 · 167 阅读 · 0 评论 -
const char* 和char* const
前者不能改变所指对象,后者不能改变指向原创 2020-05-18 18:14:53 · 117 阅读 · 0 评论 -
c语言中的typeof
和c++中的decltype关键字一样原创 2020-05-13 17:05:30 · 434 阅读 · 0 评论 -
printf参数个数不匹配会怎样
如printf("%d,%d,%d\n",1)在调用时,会将1压栈,再将字符串"%d,%d,%d\n"压栈,分析字符串时,[ebp+8]代表数字1的位置,函数将获取[ebp+8]处的值,由于printf没有越界检测,于是继续分别获取[ebp+12],[ebp+16]地址的值,并打印。然而这两个地址实际上属于上一个函数的栈帧部分,这个部分的值是不确定的。...原创 2020-04-17 00:23:46 · 2541 阅读 · 0 评论 -
函数调用过程栈指针的变化
https://blog.csdn.net/zhuoya_/article/details/80516246转载 2020-04-16 23:56:35 · 695 阅读 · 0 评论 -
register变量
register变量将变量存储在寄存器里面而不是内存,因此是不能对其取地址的原创 2020-04-14 01:23:05 · 159 阅读 · 0 评论 -
宏与枚举、宏与inline函数区别
宏与枚举:1.枚举是实体,同int,占用内存,有表示范围;2.宏不是实体,不占用内存,作用于预编译的过程,对使用了宏的地方进程替换。宏与inline:1.inline是函数,宏不是2.inline不一定展开,宏一定会展开3.inline在编译时展开,宏在预编译时展开4.inline是函数,会进行参数类型检查,语法检测等;宏只是简单展开参考:https://www.cnblogs....原创 2020-04-03 01:33:47 · 133 阅读 · 0 评论 -
目标文件(.o)里面有什么?
和可执行文件差不多,除了代码段,数据段外,还包含了用于连接所需要的重定位信息,以及符号表等。.lib/.a/.so文件都包含了什么?其实就是大一堆的目标文件。参考:https://www.jianshu.com/p/4c938ccda653...原创 2020-04-02 23:18:38 · 965 阅读 · 0 评论 -
extern “C“
#ifdef _cplusplus{extern "C"#enifvoid foo(int,int);#ifdef _cplusplus}#enif先说说函数签名:1.在C++中,函数是可重载的,而C是不可重载的,故两者生成函数签名的原则是不同的。c++生成的函数签名可能是_foo_int_int,而C生成的函数签名可能是_foo;2.编译源文件生成目标文件时,目标文件的内...原创 2020-04-01 01:38:36 · 106 阅读 · 0 评论 -
gcc编译选项
https://www.jianshu.com/p/e5967e46797b转载 2020-03-31 17:53:45 · 211 阅读 · 0 评论 -
僵尸进程,join()和detach()
当父进程不调用wait时,子进程死后就会变成僵尸进程,需要注意的是,子进程死后操作系统将会回收它的内存、文件等资源,但是不会回收子进程的进程号、退出状态等,导致进程号一直被占用,而进程号的数目是有限的。wait释放的资源也就是这些进程号和退出状态。一个技巧:fork两次,使得子进程变成孤儿进程而不是僵尸进程,从而使得init进程托管该进程。join和detach:join类似于wait,由父...原创 2020-03-31 19:48:29 · 599 阅读 · 0 评论 -
内存映射mmap的原理
.转载 2019-11-07 16:14:42 · 117 阅读 · 0 评论 -
MinGW与Cygwin
Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的API(如fork,spawn,signals,select,sockets等),如果代码中使用了这些API,在win32下当然找不到对应的库.但是,这些API的功能在win32中也能实现,也许你已...原创 2019-11-07 10:31:39 · 143 阅读 · 0 评论 -
gcc/g++命令的一些参数
-g - turn on debugging (so GDB gives morefriendly output)-Wall - turns on most warnings-O or -O2 - turn on optimizations-o - name of the output file-c - output an object file (.o)-I - specif...原创 2019-10-30 16:21:45 · 140 阅读 · 0 评论 -
c/c++的一些记录
1.文件读写的几种方式:read,fread,ifstream.read,mmaphttps://www.cnblogs.com/redips-l/p/8258306.htmlhttps://www.byvoid.com/zhs/blog/fast-readfile2.c的字符操作函数https://blog.csdn.net/xingerr/article/details/7022686...原创 2019-10-29 10:53:45 · 124 阅读 · 0 评论 -
C语言各种数据类型的占位符
char – %c或%hhd %c采用字符身份,%hhd采用数字身份;unsigned char – %c或%hhushort – %hdunsigned short – %hulong – %ldunsigned long – %luint – %dunsigned int – %ufloat – %f或%g %f会保留小数点后面无效的0,%g则不会;double – %lf或...原创 2019-10-24 15:29:00 · 4027 阅读 · 0 评论