![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
超越梦想
这个作者很懒,什么都没留下…
展开
-
C语言常用宏定义
01: 防止一个头文件被重复包含#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif02: 重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植。typedef unsigned char boolean; /* Boolean value type. */typedef un转载 2012-07-05 14:29:14 · 611 阅读 · 0 评论 -
C 语言宏定义时紧跟#和##后面的宏不能展开的问题
经常写宏的可能会遇到这种问题,比如下面的例子#NUM 1#TEST(val, type) val##type如果我们调用时写成TEST(aaa, 1)不会有什么问题,但是如果写成TEST(aaa, #NUM) 这时会发现#NUM不能展开,此时的解决方案可以写双层宏来解决,如下:#NUM 1#_Test (val, type) val##type#Test(val, type原创 2013-06-04 14:38:22 · 1628 阅读 · 0 评论 -
Linux 获取并分析程序崩溃时的调用堆栈
下面是一个小例子,说明了程序出现段错误时,如何打印程序的堆栈信息。#include#include#include#include static void WidebrightSegvHandler(int signum){ void *array[10]; size_t size; char **strings; size_t i, j; si转载 2013-04-17 10:47:56 · 10087 阅读 · 0 评论 -
Socket 单线程多用户并发的两个小例子
#include #include #include #include #include #include #include #include #include #define MYPORT 1234 // the port users will be connecting to#define BACKLOG 5 // how many pend转载 2013-03-27 10:11:24 · 5215 阅读 · 1 评论 -
Linux CGI 上传程序
#include #include #include #define DEAL_BUF_LEN 1024#define SIGN_CODE_LEN 100#define FILE_NAME_LEN 64#define FILE_SAVE_DIR "/tmp"enum{ STATE_START, STATE_GET_SIGN_CODE, STATE_GET_FILE_N转载 2013-03-14 10:32:16 · 1092 阅读 · 0 评论 -
之前写的SSL的性能测试程序
client.c#include #include #include #include #include #include #include #include #include #include #include #include #define MAXBUF 1024#define MAX_THREADS 100#define SUBTHREADNUM 2i原创 2013-03-14 11:13:51 · 2291 阅读 · 0 评论 -
getchar和getch的区别
int getchar(void);功 能: 从stdin流中读字符返回值:读取的字符getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII转载 2013-01-07 09:38:30 · 867 阅读 · 0 评论 -
C语言操作符优先级
优先级运算符含 义运算对象的个数结合方向1()[]->.圆括号下标运算符指向结构体成员运算符结构体成员运算符 自左至右2!逻辑非运算符1(单目运算符)自右至左~按位取反运算符++自增运算符--自减运算符-负号运算符(类转载 2012-08-16 11:15:45 · 860 阅读 · 0 评论 -
十六进制以内任意进制数转十进制
十六进制以内任意进制数转十进制的C语言实现#include #include #include #include #include int parseInt(char *str, int type){ int value = 0; //int length = strlen(str) - 1; char tmpChar; while((tmpChar原创 2012-07-31 08:45:41 · 801 阅读 · 0 评论 -
C语言系统开发的几个小经验总结
一、不要小看打印,一定要对打印加以重视,一般情况下,良好的打印设计,不仅可以及时的定位问题,又能对打印很方便的进行控制。下面是我一般常用的方法:#define PMMessage printf("[%s, line%d]: ", __FILE__, __LINE__); printf#define PDMessage DMessage("[%s, line%d]: ", __FILE__,原创 2012-07-21 12:04:53 · 1171 阅读 · 0 评论 -
避免重复包含应该注意的问题
变量定义不能或者说不应该定义在.h文件中,例如 有 a.h,里面定义了变量 int temp; 如下:// a.h#ifndef _a_h_#define _a_h_int temp; // define varible#endif// 工程包含两个模块 a.c ,b.c//--------b.c----------#include"a.h"..转载 2012-07-21 12:29:24 · 515 阅读 · 0 评论 -
ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别
ZeroMemory、memset 和 “={0}” 三者用于清零操作的区别:首先是ZeroMemory和memset的区别:1、ZeroMemory是微软的SDK提供的,memset属于CRun-time Library提供的。因此ZeroMemory只能用于Windows系统,而memset还可用于其他系统。2、ZeroMemory是一个宏,只是用于把一段内存的内容置零转载 2012-07-21 10:57:51 · 1120 阅读 · 0 评论 -
多播包的发送与接收
Listener Program#include #include #include #include #include #include #include #define HELLO_PORT 12345#define HELLO_GROUP "225.0.0.37"#define MSGBUFSIZE 256main(int argc, char *argv[]){转载 2015-07-24 11:22:49 · 1149 阅读 · 0 评论