std::wstring 主要用于 UTF-16 编码的字符
DWORD 代表 unsigned long int 会随着机器位数的不同而发生变化,比如在 16 位机上为 16 为,在 32 位机上为 32 位,在 64 位机上为 64 位。看看最原始的定义就知道了。
utf8_to_wide:
wchar_t 类型,也称为双字节类型,或宽字符类型。 调用函数前加 “::” 意思是要调用的是全局函数,:: 前面是空的代表的是全局作用域 GetEnvironmentVariable 获取系统环境变量
unique_ptr 是 C++ 11 提供的用于防止内存泄漏的智能指针中的一种实现,独享被管理对象指针所有权的智能指针。unique_ptr 对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。 unique_ptr 具有 -> 和 * 运算符重载符,因此它可以像普通指针一样使用。 explicit: 首先,C++ 中的 explicit 关键字只能用于修饰只有一个参数的类构造函数,它的作用是表明该构造函数是显示的,而非隐式的,跟它相对应的另一个关键字是 implicit, 意思是隐藏的,类构造函数默认情况下即声明为 implicit (隐式).
# 变长参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #include <stdio.h> void test ( int a, char b, int c, int d, int e) { printf ("%d\n%d\n%d\n%d\n%d\n\n" ,a,*(&a+1 ),*(&a+2 ),*(&a+3 ),*(&a+4 )); } int main (int argc,char *argv[]) { int a = 1 ; char b = 2 ; int c = 3 ; int d = 4 ; int e = 5 ; test (a,b,c,d,e); return 0 ; }
C++ 内部有实现 VarList
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <stdio.h> #include <stdarg.h> int getSum (int num,...) { va_list ap; int sum = 0 ; int loop = 0 ; va_start (ap,num); for (;loop < num ; loop++) { sum += va_arg (ap,int ); } va_end (ap); return sum; } int main (int argc,char *argv[]) { int sum = 0 ; sum = getSum (5 ,1 ,2 ,3 ,4 ,5 ); printf ("%d\n" ,sum); return 0 ; }