代码记录

789次阅读
一条评论

共计 875 个字符,预计需要花费 3 分钟才能阅读完成。

代码记录

switch记录

switch里不使用break会警告, 可以使用 [[fallthrough]] 来忽略警告

https://learn.microsoft.com/en-us/cpp/code-quality/c26819?view=msvc-170

void fn1();
void fn2();

void foo(int a)
{
    switch (a)
    {
        case 0:    // case 0 和 case1 这里不会有警告, 隐式回退
        case 1:
            fn1(); // 从case 1到 case 2的隐式失误, 这里可以加入 [[fallthrough]]
            // [[fallthrough]] // 加入这个屏蔽警告
        case 2:    // Warning C26819.
            fn2();
            break;
        default:
            break;
    }
}

一句话能说明的记录

c++17的 std::vector.emplace_back 加入了返回对象引用

c++20才加入 char8_t 类型

GetFinalPathNameByHandleW 可以获取文件句柄对应的文件名

std::sort 不能排序std::map 和 std::unordered_map

模拟按键, NtUserInjectKeyboardInput, 必须在gui进程下调用, 参数16个字节, 前4个字节是键代码, 下来4个字节是功能键, 后面两个参数可以为0, 应该是 KEYBDINPUT 结构指针, 定义在winuser.h 头文件里, 第二个参数填1

类方法指针定义, 返回值(调用约定 类名::*类型)(参数), 比如

typedef char&(std::string:: * PFN_at)(size_t);
PFN_at pfn2 = &std::string::at;
// 或者不定义类型, 直接声明变量
char&(std::string:: * 变量名)(size_t) = &std::string::at

调用类指针: 返回值 = (类指针->*方法指针)(参数);

std::string str;
std::string* pStr = &str;
char& ch = (pStr->*变量名)(10);
char& ch = (str.*变量名)(10);

正文完
 0
评论(一条评论)
kuodafu1 评论达人 LV.1
2024-10-26 21:34:08 回复

测试
…..asdas

 Windows  Edge  中国重庆重庆市联通