
C语言
文章平均质量分 70
子虚
这个作者很懒,什么都没留下…
展开
-
关于内存对齐
1.引子 在结构中,编译器为结构的每个成员按其自身的自然对界(alignment)条件分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。 例如,下面的结构各成员空间分配情况(假设对齐方式大于2字节,即#pragma pack(n), n = 2,4,8...下文将讨论#pragmapack()):struct test {原创 2012-11-28 17:52:24 · 4505 阅读 · 4 评论 -
C字符串处理函数
1、字符串长度strlen()原型为:size_tstrlen( const char *str);//size_t是_int64或者unsignedint,取决于平台环境注意:strlen得到的是除字符串结束标记(string terminator / nullcharacter)外的所有字符的个数.2、字符串大小写转换strupr、strlwr原型为:原创 2012-03-28 19:25:19 · 1180 阅读 · 0 评论 -
Windows下的回车是回车换行(\r\n)还是换行回车(\n\r)
记得在Windows下学X86汇编语言时,用0DH(\r)和0AH(\n)来输出回车(跳到下一行的开始处)。问题来了,在Windows下是先回车再换行呢还是先换行再回车呢?在Unix系统下换行只有\n,MAC OS下只有\r(网上是这么说的, 没用过Mac OS, 无从证实),都不会出现上述的问题。现在新建一个文本文档,其内容如下:现在用C语言二进制形式将其读入字符串(可以参考我的原创 2012-07-31 18:39:39 · 10033 阅读 · 0 评论 -
为什么要内存对齐 Data alignment: Straighten up and fly right
为了速度和正确性,请对齐你的数据. 概述:对于所有直接操作内存的程序员来说,数据对齐都是很重要的问题.数据对齐对你的程序的表现甚至能否正常运行都会产生影响.就像本文章阐述的一样,理解了对齐的本质还能够解释一些处理器的"奇怪的"行为. 内存存取粒度 程序员通常倾向于认为内存就像一个字节数组.在C及其衍生语言中,char * 用来指代"一块内存",甚至在JAVA中也有翻译 2012-11-28 17:45:14 · 14822 阅读 · 11 评论 -
const T vs. T const by Dan Saks
原文下载:http://uploadingit.com/file/n7xuzf5mu71qqvkm/Dan_Saks_const_T_vs_T_const.pdf 参考文档:http://blog.youkuaiyun.com/night_elf_1020/archive/2008/12/06/3460715.aspx “我们在使用typedef和const的时候遇到了一个非常有趣翻译 2012-11-17 18:45:31 · 3582 阅读 · 2 评论 -
C语言如何查看和修改MySQL使用的字符集
最近用C语言连接数据库,插入数据时如果数据中存在汉字,插入会失败。最后搞明白了是MySQL使用的字符集的问题。 1、如何查看当前连接的数据库使用的字符集MySQL提供的接口函数prototype为:void STDCALL mysql_get_character_set_info(MYSQL *mysql,原创 2012-05-09 12:37:18 · 3374 阅读 · 2 评论 -
C语言把文件读入字符串以及将字符串写入文件
1.纯C实现 FILE *fp; if ((fp = fopen("example.txt", "rb")) == NULL) { exit(0); } fseek(fp, 0, SEEK_END); int fileLen = ftell(fp); char *tmp = (char *) malloc(sizeof(char) * fileLen); fseek(fp原创 2012-07-31 18:14:18 · 22363 阅读 · 2 评论 -
将字符串转换成十进制数字
这两天做的一个项目需要将十进制字符串(只含'0'--'9' )转换成相应的数字。比如将“123456789”转换成数字123456789。要求只转换指定长度而不是转换到字符串的结束‘\0’。在网上搜到了比如StrToInt()等都是处理字符串到字符串结束而且不知道那些函数能不能判断溢出,比如对于32位机来说4294967295是无符号整型能表示的最大数,如果所给的字符串超出了上述范围函数能不能判断原创 2012-05-04 14:50:30 · 34673 阅读 · 0 评论