
C
无云
无
展开
-
关于《C语言深度解剖》(陈正冲) 4.1.5,编译器的bug 的看法
本想发到作者的博客上的,但找不到地址。原文详细内容我不再写出,其中我要指出的是:经本人测试,我不敢说这是不是VC6.0的一个BUG,但我的结果是,VC6.0给定义的第一个变量的地址为0x12ff7c !!!这也就可以解释文中提到的问题了!当定义的第一个变量就是指针时,这个指针变量的地址是0x12ff7c !所以给*p=NULL的意思就是把这个地址(即p)值为NULL!至于最后面原创 2011-01-19 02:41:00 · 2496 阅读 · 0 评论 -
C/C++ linux下光标定位和清屏函数(printf 实现)
转自:http://zisedeqing.blog.163.com/blog/static/9555087120129111485394/#include #include // 清除屏幕#define CLEAR() printf("\033[2J")// 上移光标#define MOVEUP(x) printf("\033[%dA", (x))// 下移光标#d转载 2012-11-13 16:47:50 · 24201 阅读 · 2 评论 -
用C语言实现艺术清屏
转自:http://www.yesky.com/483/1800983.shtml2004-05-25 10:50 来源:唯C世界 作者: 责任编辑:方舟·yesky 评论(0)问题的提出:我们在编制程序时,经常要用到清屏处理,如dos下的cls,Turbo C下的clrscr()等都具有清屏功能,但这些均为一般意义的清屏,并未显示其清屏规律。而有时为了达到清屏的艺术美观,往往对清屏有转载 2012-11-13 16:53:56 · 4654 阅读 · 2 评论 -
关于浮点数的比较
我们都知道,浮点数比较,应该是比较一个范围,如果在这个范围内,我们认为相等,为什么不能用"=="比较呢?下面给出几段代码,欢迎大家讨论.#include int main(){ float f = 1/3.0; printf("f = %f\n", f); if (1/3.0 == f) { printf("Hello World!\n")原创 2012-06-06 11:07:37 · 621 阅读 · 0 评论 -
uboot中,ARM体系下,设置变量4字节对齐
转载自:http://www.crifan.com/in_uboot_arm_system_set_the_variable_4-byte_alignment/调试程序遇到由于buffer地址不是4字节对齐,所有底层去:u32 *p =(u32 *)buf;使得数据拷贝有误。所以,去参考了uboot中其他人的做法:boards1845flash.c中的:转载 2012-06-05 16:38:43 · 2807 阅读 · 0 评论 -
对strcpy优化的一个核心要点
以前看到的哪篇博文里面提到过,后来没找到#include int main(int argc, char *argv[]){ unsigned long num = 0x0F0F0F00; unsigned long sum = num + 0x7EFEFEFF; unsigned long un = 0xFFFFFFFF ^ num; unsigned转载 2012-03-14 20:25:01 · 1069 阅读 · 0 评论 -
希尔排序
测试方法见另外三篇:快速排序、归并排序、堆排序代码:void ShellSort(int * const arr, const DWORD number)//希尔排序{ int tmp; DWORD i, j; DWORD step; DWORD index; if (number < 2) { return; }原创 2012-01-04 20:42:12 · 528 阅读 · 0 评论 -
归并排序(非递归)
以下代码经测试,排序5000000(五千万)int型数据没有问题!第一个参数是数组首地址第二个参数是数组元素个数void MergeSort(int * const arr, const DWORD number)//归并排序{ DWORD i; DWORD index1, index2;//将数组分为两个,分别作为两个数组第一个元素的下标原创 2012-01-04 09:06:12 · 2572 阅读 · 0 评论 -
堆排序(非递归)
以下代码经测试,排序5000000(五千万)int型数据没有问题!第一个参数是数组首地址第二个参数是数组元素个数void HeapSort(int * const arr, const DWORD number)//堆排序{ int tmp; DWORD tmpIndex; DWORD i=1; DWORD num; DWORD原创 2012-01-04 09:10:13 · 2390 阅读 · 0 评论 -
快速排序(非递归)
以下代码经测试,排序5000000(五千万)int型数据没有问题!第一个参数是数组首地址第二个参数是数组元素个数typedef struct _BUFF { int *LeftBuff; int *RightBuff; DWORD number;//有多少个 struct _BUFF *next;}BUFF;void QuickSort(i原创 2012-01-03 12:03:09 · 1684 阅读 · 0 评论 -
c语言实现域名解析
来源:c语言实现域名解析对原文进行了一点小修改,原文可能是在C++环境编译的,比如“.cpp”后缀的文件编译的,“.cpp”文件默认以C++方式编译,所以原文如果复制保存为“.c”后缀的,编译是通不过的,很多错误。以下是修改过后的代码,DNS请修改为自己所在区域的DNS地址,经测试,直接使用路由IP也可。域名输入例如:“www.baidu.net”,不含引号。测试“www.youkuaiyun.com”得转载 2012-01-13 18:28:26 · 14336 阅读 · 1 评论 -
VS2010纯C语言链接MySQL
首先去http://www.mysql.com/downloads/connector/c/注册下载,这里以mysql-connector-c-noinstall-6.0.2-win32-vs2005为例,其他我没有尝试,主要的估计差不多。将mysql-connector-c-noinstall-6.0.2-win32-vs2005解压后的三个目录复制到VS2010的安装目录的,其他网上的一些原创 2012-01-08 20:46:47 · 2636 阅读 · 0 评论 -
TCP通讯(客户端)
修改自网络:#include #include #include #pragma comment(lib, "ws2_32.lib")int Client(void);unsigned short port;int main(int argc, char *argv[]){ srand((unsigned int)time(NULL)); port =转载 2011-12-08 20:06:11 · 473 阅读 · 0 评论 -
TCP通讯(服务端)
修改自网络:#include #include #include #pragma comment(lib, "ws2_32.lib")int Server(void);int main(int argc, char *argv[]){ return Server();}int Server(void){ WSADATA wsaData; SOC转载 2011-12-08 20:05:32 · 559 阅读 · 0 评论 -
UDP通讯(客户端)
根据网上的资源修改的:#include #include #include #pragma comment(lib, "ws2_32.lib")int Client(void);int main(int argc, char *argv[]){ return Client();}int Client(void){ char buffer[1024] =转载 2011-12-07 19:16:10 · 476 阅读 · 0 评论 -
UDP通讯(服务端)
根据网上的资源修改的:#include #include #include #pragma comment(lib, "ws2_32.lib")int Server(void);int main(int argc, char *argv[]){ return Server();}int Server(void){ char buffer[1024] =转载 2011-12-07 18:44:13 · 511 阅读 · 0 评论 -
VC6中减小生成EXE文件的大小
摘自:http://bbs.youkuaiyun.com/topics/320019442#2(mikespook):既然不用exe压缩工具,就手工编辑 PE 结构吧。那样可以把 exe 文件缩得很小,很小~~#3(xingzhe2001):需要你在编程序的时候注意,不要滥用模板,减少全局变量。#4(whg01):尽量复用代码,能用系统api做的,就不要自己写。原创 2013-11-07 11:31:45 · 3750 阅读 · 0 评论