scope resolution region operator:" ::"
http://msdn.microsoft.com/en-us/library/56e442dc(v=VS.71).aspx
Format Specification Fields: printf and wprintf Functions
想要printf unsigned long long 用%llx; e.g.:printf("id is %llx /n", xxid);
unicode/mbcs/ansi
程序里还是用tchar比较好,否则转换起来还是挺麻烦的。
其实主要是unicode和非unicode之间的转换,mbcs是单位为char,程序解析的时候有可能一次解析变长个char来组成中文一类的字符。
http://msdn.microsoft.com/en-us/library/c426s321(VS.71).aspx
static_cast
http://msdn.microsoft.com/en-us/library/c36yw7x9(v=vs.80).aspx
compile time的类型转换,一种是像int转float这种,没什么好说的。
pointer转换到是值得注意。
比如:
在做B* b = new B; AA* a = static_cast<AA*>(b);这样的操作的时候,a的地址会是根据内存的一个偏移而不是和b一样,或者dynamic_cast类型的NULL;
http://msdn.microsoft.com/en-us/library/5tkz6s71.aspx
__declspec( selectany ) declarator
用这个可以直接header里面define global/static variable, 然后在link的时候只选择一个,就不会出现multiple definition了。