C/C++
sms88
这个作者很懒,什么都没留下…
展开
-
匈牙利命名法
该约定是由生于匈牙利布达佩斯的Charles Simonyi 开发的,它通过在数据和函数名中加入额外的信息以增进程序员对程序的理解。例如:char ch; /* 所有的字符变量均以ch 开始 */byte b; /* 所有的字节均冠以b */long l; /* 所有的长字均冠以l */对于指向某个数据类型的指针,可以先象上面那样建立一个有类型的名字,然后给该名字加上前缀字母P:char* pch原创 2004-12-11 13:34:00 · 1204 阅读 · 0 评论 -
已排序了的vecotr
//来自codeproject.com//http://www.codeproject.com/vcpp/stl/sorted_vector.asp/* STL-conforming "sorted vector" container * * (C) 2002 Martin Holzherr (holzherr@infobrain.com). All rights reserved. *转载 2007-06-16 14:25:00 · 916 阅读 · 0 评论 -
将简体字转换成繁体字
作者:京东瀚览家居官方旗舰店 //将GBK的简体转换到GBK繁体 LPTSTR CTestDlg::GBKSimplified2GBKTraditional(CString szSimplified) ...{ LCID dwLocale; WORD wLangID; wLangID=MAKELANGID(LANG_CHIN...原创 2007-08-20 16:30:00 · 5189 阅读 · 0 评论 -
utf-8编码转换成Unicode
作者:京东瀚览家居官方旗舰店 CString UTF8toUnicode( char* s){ int len = 0; WCHAR* r = new WCHAR[strlen(s) * 2]; while(s[0]) { int bytes = 1; if(s[0] & 0x80) while(s[0] & (0x80 >> byte...原创 2007-06-25 10:23:00 · 900 阅读 · 0 评论 -
关机代码(望有人来注释)
HANDLE hToken; TOKEN_PRIVILEGES tkp; // Get a token for this process. if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) error("OpenProcessToken");原创 2006-08-10 16:45:00 · 1117 阅读 · 0 评论 -
函数调用约定与函数名称修饰规则(一)
作者:星轨(oRbIt) E_Mail: 转载请注明原作者,否则请勿转载 使用C/C++语言开发软件的程序员经常碰到这样的问题:有时候是程序编译没有问题,但是链接的时候总是报告函数不存在(经典的LNK 2001错误),有时候是程序编译和链接都没有错误,但是只要调用库中的函数就会出现堆栈异常。这些现象通常是出现在C和C++的代码混合使用的情况下或在C++程序中使用第三方的库的情况下原创 2006-04-14 23:54:00 · 820 阅读 · 0 评论 -
爱上位运算
缘起:C语言区别于其它语言的重要特点是支持位运算,使其能够完成汇编语言所能完成的大部分功能。但是学校开设的C语言课程中老师往往将位运算这一章一代而过,好像这一张根本不重要。但是在实际的编程中借助于位运算往往可以设计出简洁的算法,使程序简化,并且获得较高的效率。而且在某些对硬件进行控制的编程中,位运算是必不可少的。因此笔者参考了相关书籍,总结了一些规律和助记口诀,希望对读者有所帮助。一 优先级(转载 2006-04-06 00:01:00 · 798 阅读 · 0 评论 -
调用fclose(stdout);后,如何再开启标准输出
请看程序#include #include int main(void) { int i; /* redirect standard output to a file */ if (freopen("name.txt", "w", stdout) == NULL) fprintf(stderr, "error redirectingstdout/n")原创 2005-12-31 12:35:00 · 4376 阅读 · 0 评论 -
倒记时程序
// A macro constant called CLK_TCK defines the relation betwen clock tick and second// (clock ticks per second).//clock()函数Return number of clock ticks since process start /* clock example: countdown原创 2005-12-14 21:24:00 · 869 阅读 · 0 评论 -
_stat, _wstat, _stati64, _wstati64
The _stat structure, defined in SYS/STAT.H, includes the following fields.st_gidNumeric identifier of group that owns file (UNIX-specific) This field will always be zero on NT systems. A redirected fi原创 2005-05-24 23:29:00 · 1696 阅读 · 0 评论 -
中缀表达式换成后缀表达式
//只能转换单个数字#include#include#includeint lookahead;void error(){ printf("syntax error/n"); exit(1);}void match(int c){ if(lookahead==c) lookahead=getchar(); else error();}void texm(){ if(isdigit(lookahe原创 2005-05-23 23:55:00 · 1145 阅读 · 0 评论 -
向量vector的实现(初学着)
//向量的长度为全局变量#include #include #include#include #define MAX 100typedef int vector[MAX];int n=10; //向量A的大小;//向量的建立//输入n个整数,产生一个存储这些整数的向量A的函数void create(vector A,int n){ if(n>MAX) { printf("error/n");原创 2005-04-29 10:54:00 · 1657 阅读 · 0 评论 -
汉偌塔问题求解方法
#include #include #include#include void move(int n,char a,char b){ printf("第%d个盘自从%c移动到%c/n",n,a,b);}void hanrta(int n,char x,char y,char z)//把n个盘从x移动到z,用y做辅助柱子{ if(n==1) //若只有一个盘,则直接把这个盘从x柱子移动到z柱子原创 2005-04-28 08:11:00 · 1431 阅读 · 0 评论 -
解释va_arg, va_end, va_start
#include #include #include#include int average( int first, ... ) //变参数函数,C++里也有{ int count=0,i=first,sum=0; va_list maker; //va_list 类型数据可以保存函数的所有参数,做为一个列表一样保存,若为全局变量的话,还可以传给其它函数 va_start(m原创 2005-04-27 21:03:00 · 1540 阅读 · 0 评论 -
汉字的处理
许多C语言参考书中都没涉及到这个问题,程序中多为处理英文变量和英文字符串,当然存储汉字应该用字符数组,这一点是肯定的,关键问题是汉字在你的计算机系统上占几个字节呢?你用这个语句就知道大小了:printf("%d",strlen("大小")); //输入2个汉字的大小但是每个系统中汉字的大小又是不同的,幸运的是多数系统中汉字的大小是相同的。但还得注意汉字的半角和全角问题哦那我用个简单的例子说明汉原创 2005-01-08 23:36:00 · 1235 阅读 · 0 评论 -
我的笔记
1。关于switch。 switch后的左{后虽可以定义语句,但是永远不会执行#includeusing namespace std;int main(){ int i=10,j=1; switch(i) { j=30; //这个语句不会执行 case 10: cout }; return 0;}2。static在函数内部表示该变量在各个调用间一直保持延续性原创 2004-12-17 23:07:00 · 883 阅读 · 0 评论 -
getchar()函数返回值的问题
考虑以下的代码:char c;c = getchar();if( c == EOF )//...在不进行符号扩展的机器上,c 总是正数因为它是char 类型而EOF 却是负数,结果上面的测试条件总会失败。为了避免这一点,必须用int 而不用char 来保存getchar 返回值的变量。原创 2004-12-15 22:55:00 · 2755 阅读 · 0 评论 -
NULL的特别用法
编译程序能够检查出以下while 循环错放了一个分号:/* memcpy 复制一个不重叠的内存块 */void* memcpy(void* pvTo, void* pvFrom, size_t size){byte* pbTo = (byte*)pvTo;byte* pbFrom = (byte*)pvFrom;while(size-->0);*pbTo++ = *pbFrom++;return(原创 2004-12-11 13:58:00 · 1497 阅读 · 1 评论 -
系统服务创建含有界面的进程
作者:京东瀚览家居官方旗舰店 系统服务在开机运行时,由于用户还没登陆,虽然可以用CreateProcess来创建进程但是界面进程的用户名是SYSTEM了,而且界面有可能显示不出来、托盘图标创建不成功。可以在界面里创建一具有名字的内核句柄,例如CreateEvent,服务程序一直OpenEvent它,若没打开成功就调用CreateProcessAsUser来创建这个界面进程,CreatePr...原创 2008-07-12 12:45:00 · 1244 阅读 · 0 评论