有几个之前一直没有太理会的编程细节,最近又遇到了,深入研究下,做个记录。
1.<winsock2.h>和<windows.h>重复引用的问题。
socket编程时经常遇到该问题,一劳永逸的方法是,在所有头文件引用之前,先引用<winsock2.h>后引用<windows.h>
该问题可以升级为,对重复引用的编译错误,的理解够不够深入。以及如何解决重复引用的编译错误。
2.sscanf函数,很多高级用法。自己经常遇到一些格式化输入的问题,搞得很头疼,都可以用sscanf解决。
该问题暴露出,自己对c语言的一些基本函数不熟悉的问题。看来自己的编程语言基础不踏实。
例如:格式化输入字符串“2015年01月20日16时58分04秒”,
代码:
SYSTEMTIME ss;
// "%*2s"标识跳过2个任意字符
sscanf("2015年01月20日16时58分04秒","%d%*2s%d%*2s%d%*2s%d%*2s%d%*2s%d",
&ss.wYear,&ss.wMonth,&ss.wDay,&ss.wHour,&ss.wMinute,&ss.wSecond);
printf("%d-%d-%d %d:%d:%d",ss.wYear,ss.wMonth,ss.wDay,ss.wHour,ss.wMinute,ss.wSecond);
1.<winsock2.h>和<windows.h>重复引用的问题。
socket编程时经常遇到该问题,一劳永逸的方法是,在所有头文件引用之前,先引用<winsock2.h>后引用<windows.h>
该问题可以升级为,对重复引用的编译错误,的理解够不够深入。以及如何解决重复引用的编译错误。
2.sscanf函数,很多高级用法。自己经常遇到一些格式化输入的问题,搞得很头疼,都可以用sscanf解决。
该问题暴露出,自己对c语言的一些基本函数不熟悉的问题。看来自己的编程语言基础不踏实。
例如:格式化输入字符串“2015年01月20日16时58分04秒”,
代码:
SYSTEMTIME ss;
// "%*2s"标识跳过2个任意字符
sscanf("2015年01月20日16时58分04秒","%d%*2s%d%*2s%d%*2s%d%*2s%d%*2s%d",
&ss.wYear,&ss.wMonth,&ss.wDay,&ss.wHour,&ss.wMinute,&ss.wSecond);
printf("%d-%d-%d %d:%d:%d",ss.wYear,ss.wMonth,ss.wDay,ss.wHour,ss.wMinute,ss.wSecond);
另一个问题是使用sscanf格式化不规则的输入。
3.面试被人问,c中函数有几种调用方式,自己根本没有概念,c/c++也五年了。回来百度了,是自己_thiscall、_stdcall等关键字没有深入理解。