C语言
Erin987
这个作者很懒,什么都没留下…
展开
-
malloc和new的区别
0. 属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1. 参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。2. 返回类型new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类...转载 2018-07-10 14:34:48 · 119 阅读 · 0 评论 -
malloc和calloc的区别
函数malloc()和calloc()都可以用来动态分配内存空间。1、malloc()函数有一个参数,即要分配的内存空间的大小, void *malloc(size_t size); calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小, void *calloc(size_t...转载 2018-07-10 14:31:37 · 1827 阅读 · 0 评论 -
负数大于正数?类型提升!
1、写了如下程序,遇到问题,sym-sxm为负数,t.size()*10为正数,但是依然进入了循环?之前一直忽略了这一步,百思不得bug在哪,坑死人。。2、上网查了一些资料后,改成如下程序,统一类型后进行比较,问题解决了。3、这是为什么呢?有符号数的最高二进制位是符号位,负数的符号位是1。4、但sym-sxm这个有符号负数与t.size()*10无符号正数进行比较时,类型提升了!C语言中整数自动转...原创 2018-07-12 14:18:36 · 3165 阅读 · 0 评论 -
关于intptr_t
C语言编程需要注意的64位和32机器的区别。数据类型特别是int相关的类型在不同位数机器的平台下长度不同。C99标准并不规定具体数据类型的长度大小。为了保证平台的通用性,程序中尽量不要使用long类型。可以使用固定大小的数据类型宏定义,这些宏定义需要引用stdint.h头文件,比较麻烦。使用intptr_t可以保证平台的通用性,它在不同的平台上编译时长度不同,但都是标准的平台字长,...原创 2018-08-01 10:17:36 · 1569 阅读 · 0 评论 -
_findnext()调试中断,发生访问错误,错误定位到ntdll.dll
将 long hFile 改为 intptr_t hFile 即可。原因:关于intptr_t原创 2018-08-01 10:19:40 · 1968 阅读 · 1 评论 -
关于c_str()
语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针常量, 内容与本string串相同。这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。...原创 2018-08-01 10:20:25 · 233 阅读 · 0 评论 -
C++遍历文件夹下所有文件
主要用到_finddata_t结构体,和_findfirst、_findnext、_findclose三个函数。他们都属于io.h头文件。1、结构体:用来存储文件各种信息struct _finddata_t { unsigned attrib; time_t time_create; time_t time_access; ...原创 2018-08-01 10:39:52 · 1468 阅读 · 3 评论 -
关于C语言中的宏
宏:Macro,是一种批量处理的称谓。宏是一种规则或模式,或称语法替换。在预编译时进行,称作宏展开。C语言中的宏定义:1)#define是预处理器处理的单元实体之一;2)#define定义的宏可以出现在程序的任意位置;3)#define定义之后的代码都可以使用这个宏。定义宏常量:1)可以直接使用;2)本质为字面量。宏定义表达式:1)#define表达式的...原创 2019-07-10 19:22:43 · 359 阅读 · 0 评论 -
关于SDK、API、DLL
SDK:Software Development Kit,软件开发工具包,辅助开发某一类软件的相关文档、范例和工具的集合。API:Application Programming Interface,应用编程接口。DLL:Dynamic Link Library,动态链接库。.dll也是一种可执行文件格式,但不能直接执行,通常由 .exe在执行时装入,内含有一些资源以及可执行代码等。...原创 2019-07-10 19:24:56 · 359 阅读 · 0 评论