duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from dnaugsuz
是啊,所以 "" 不是一个地址指针嘛?即便它可能被分配在本地
Forwarded from Richard Yu
那结果就和直接传0不一样了。
Forwarded from Yuuta
看神仙讨论中(
Forwarded from dnaugsuz
printf(EMPTY_CHARP); 的 x86 翻译结果是

mov rdi, qword ptr [EMPTY_CHARP]
mov dword ptr [rbp - 4], eax # 4-byte Spill
mov al, 0
call printf
xor ecx, ecx
mov dword ptr [rbp - 8], eax # 4-byte Spill

上面一句 printf("");

movabs rdi, offset .L.str
mov al, 0
call printf

似乎和 printf(0); 是有区别的

mov al, 0
call printf
Forwarded from Yuuta
汇编大佬 我死了
Forwarded from Richard Yu
我说的是 GetModuleHandle 的情况啊,上面的情况是要传0进去。
Forwarded from dnaugsuz
😵 那我就完全糊涂了... 总之我上面的情况你支持吧?
之前的 GetModuleHandle 的处理,反正我不是 Win32 的程序员,算了吧
Forwarded from Richard Yu
不支持,有这种需求的情况下直接写 "" 不就好了?
Forwarded from dnaugsuz
也没有,你想想 sizeof(char *) 是 4
上面那条 call printf 指令是跳转子程序

mov dword ptr [rbp - 4], eax
你知道这是赋值第二个参数(vararg)就可以了,前面 eax 的值肯定是 0 (xor eax, eax)

mov rdi, qword ptr [EMPTY_CHARP]
使用 rdi 寄存器传递是因为这是 x86_64 (long mode 支持)
你用 x86 作为目标机器再编译一遍就会发现都是用机器栈传参数的
Forwarded from dnaugsuz
我之前是说有人觉得 "" 不优雅的情况,就不用 nullptr 替换了....

等等我理解你的意思了,原来 nullptr 的确和 "" 是不一样的... 但我之前没有说他们一样啊...
Forwarded from Richard Yu
我不觉得
Forwarded from dnaugsuz
GetModuleHandle 不是正常情况使用非 NULL char* 调用嘛
我之前一直是以这个前提发的消息,没有考虑输入 NULL 的情况
Forwarded from Richard Yu
传null获取当前程序的基址也是正常情况。甚至可以说是主要用途。
Forwarded from dnaugsuz
也就是说 NULL"" 都支持?

procedure GetModuleHandle(char *modname)
match args
[NULL] -> return GetModuleHandle("")
otherwise -> return RealGetModuleHandle(args)
Forwarded from dnaugsuz
噢... 我之前以为 "" 就是你说的 NULL 自身特例
听起来也很符合直觉,不过可能 NULL 更好一些
Forwarded from dnaugsuz
现在我发现其实之前一直都是我搞错了

Yuuta 贴了两块代码一个里面是

GetModuleHandle("")

一个是

GetModuleHandle(0)

此时我就把他传 0 当成等价 ((char *) "") 了...

所以才有后来对此函数作用和 "" == 0 的争论
Forwarded from dnaugsuz
说起来 Trumeet 真是幸福啊,虽然我快放寒假了,但是 Trumeet 是每次熬夜修仙,然后在我旷课闲逛的时候合理合法地写代码
Forwarded from dnaugsuz
等到高中了,是没有任何时间留给你开什么实际工程的...
Forwarded from dnaugsuz
哇 NoSQL 面向文档数据库
你现在是在建立数据格式示范?
消息类型、来源、发布用户、发布时间... 还有发送类型? 🤔