
C/C++
文章平均质量分 76
爬电线杆的驴
一时瑜亮,一壶酒,浅斟酌,影婆娑......丈夫处世应将功名拓,岂抛年少任蹉跎......
展开
-
violate关键字的用法
<br />由于访问寄存器的速度要快过RAM,所以编译器一般都会作减少存取外部RAM的优化。比如:<br /><br /> static int i=0;<br /><br /> int main(void)<br /> {<br /> ...<br /> while (1)<br /> {<br /> if (i) dosomething();<br /> }<br /> }<br /><br /> /* Interrupt service ro转载 2011-02-25 14:17:00 · 5328 阅读 · 1 评论 -
C++虚继承的作用
C++虚继承可以防止多重继承产生的二义性问题。虚继承,就是在被继承的类前面加上virtual关键字,这时被继承的类称为虚基类,如下面代码中的base类。虚继承在多重继承的时可以防止二义性。 class base class derived1 : virutal public base class derived2 : virtual public base转载 2013-04-01 17:17:56 · 297 阅读 · 0 评论 -
strtoul-atoi-atol-itoa .
将字符串转换成无符号长整型数: strtoul strtoul (将字符串转换成无符号长整型数) 相关函数 atof,atoi,atol,strtod,strtol 表头文件 #include 定义函数 unsigned long int strtoul(const char *nptr,char **endptr,int base); 函数说明转载 2012-08-07 16:14:41 · 349 阅读 · 0 评论 -
宽字符集(unicode)操作函数
字符分类:宽字符函数普通C函数描述iswalnum()isalnum()测试字符是否为数字或字母iswalpha()isalpha()测试字符是否是字母iswcntrl()iscntrl()转载 2011-09-15 18:44:19 · 409 阅读 · 0 评论 -
int char* string cstring 转换
1、string 转 CString CString.format("%s", string.c_str());2、char * 转 CString CString.format("%s", char*);3、int 转CSt原创 2011-03-23 15:00:00 · 371 阅读 · 0 评论 -
#pragma pack(1)
<br />#pragma pack(1)让编译器将结构体数据强制连续排列<br />比如:<br />#pragma pack(n) struct s {int i;char ch;};#pragma pack()<br />以下代码编译出来的是以1个字节的方式对齐的。这样能节约内存资源,但是会在效率上有所影响原创 2011-05-23 15:37:00 · 438 阅读 · 0 评论 -
在VC程序中调用exe文件或者批处理文件方法总结
在VC程序中调用exe文件或者批处理文件的方法:<br />一、使用system函数。<br /> 该函数可以直接使用,调用exe程序或者bat批处理程序<br /> 例如:CString strCommand("d://test.bat");<br /> system(strCommand);<br />二、使用ShellExecute函数<br /> 该函数可以将调用的窗口隐藏或者显示。<br /> HINSTANCE ShellExecute(转载 2011-03-24 09:49:00 · 944 阅读 · 0 评论 -
由getpeername引发的一个字节对齐问题
<br />struct sockaddr *sa;sa = Malloc(MAXSOCKADDR);len = MAXSOCKADDR; Getpeername(sockfd, sa, &len);//sockfd是一个已连接套接字(tcp) 此函数用来获取连接另一端的协议地址<br />注意:这里我们用malloc ,而不是一开始就定义 char sockaddr[MAXSOCKADDR]然后按照协议作类型强转<br />。是因为malloc 总是返回一个系统所要求的严格对齐原创 2011-02-17 17:20:00 · 739 阅读 · 0 评论 -
关于strcat想到的一点误区
Strcat函数原型如下: char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数 { char *address = strDest; //该语句若放在assert之后,编译出错 assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非0断言 while(*strDest) //是while(*strDest!=’/0’)的简化形式原创 2011-02-14 19:19:00 · 272 阅读 · 0 评论 -
strstr
<br />函数名: strstr <br /> 功 能: 在字符串中查找指定字符串的第一次出现 <br /> 用 法: char *strstr(char *str1, char *str2); <br /> strstr原型:extern char *strstr(char *haystack, char *needle); <br /> 用法:#include <string.h> <br /> 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 <b转载 2011-02-14 13:56:00 · 348 阅读 · 0 评论 -
sscanf sprinft
<br />名称: sscanf() - 从一个字符串中读进与指定格式相符的数据.<br /> <br />sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源。 <br /> 第一个参数可以是一个或多个 {%[*] [width] [{h | l | I64 | L}]type | ' ' | '/t' | '/n' | 非%符号} <br />注:<br /> 1、 * 亦可用于格式中, (即 %*d 和 %*s) 加了星号 (*) 表示跳转载 2011-02-11 17:30:00 · 386 阅读 · 0 评论 -
不可重入函数
可重入函数可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如果被中断的话,可能会出现问题,这类函数是不能运行在多任务环境下的。目录可重入函数简介编写可重入函数说明:示例:保证函数的可重入性的方法:满足下列条件的函数多数是不可重入的:举例问题问题1,如何编写可重入的函数?问题2,如何将不可重入改成转载 2011-02-10 17:09:00 · 268 阅读 · 0 评论 -
readn writen readline
<br />size_t writen(int fd,const void *vptr, size_t n){ size_t nleft; size_t nwritten; const char *ptr; nleft = n; ptr = vptr; while (nleft > 0) { if ((nwritten = write(fd, ptr, nleft)) < 0) { if (ERROR == EINTR) { nw原创 2011-02-11 10:11:00 · 354 阅读 · 0 评论 -
VC 控制台颜色设置
通常控制台都是白字黑底的,千篇一律不免单调。适当的在控制台中加入一些彩色可以让人耳目一新,本文介绍如何使用系统API接口去修改控制台的文字和背景颜色。 主要用到如下二个函数:得到standard input, standard output, or standard error的设备句柄:HANDLE GetStdHandle(DWORD nStdHandle);参数有:STD转载 2013-04-25 17:39:13 · 361 阅读 · 0 评论