今天在公司代码里见识了一个骚操作

2020-07-23 05:58:35 +08:00
 mingl0280
函数返回是个指针,并且后面预期这个指针要删的,下面是函数的返回代码:
return (PUCHAR)(0x00001000);
//( typedef PUCHAR unsigned char* )
太骚了...真的太骚了...
7348 次点击
所在节点    C++
22 条回复
blackdesk
2020-07-23 06:11:47 +08:00
这稀奇在什么地方呢
x1596357
2020-07-23 07:06:32 +08:00
不稀奇,这么低的地址,感觉是硬件初始化的东西。
leimao
2020-07-23 07:27:31 +08:00
反正不是 best practice,没事不要这么写
mingl0280
2020-07-23 07:39:57 +08:00
@x1596357 并不是硬件初始化,软件是运行在 Linux 上的,稍微做了一下跨平台而已.后面用完这个东西的时候,这行会导致意外地遇到 delete 0x1000 这种神奇的玩意儿.
nightv2
2020-07-23 07:46:03 +08:00
这指针就不能删除吧
gowk
2020-07-23 07:55:13 +08:00
看成:今天在公司看见一个骚货…
vk42
2020-07-23 08:14:40 +08:00
看不出来骚在哪,也没有足够上下文。一般说骚操作应该也有巧妙的含义吧
lechain
2020-07-23 08:16:44 +08:00
这就骚操作了?那嵌入式 c 代码 shi 山里面绝对还有一大堆你没见过的“骚操作”(逃
zjsxwc
2020-07-23 08:27:59 +08:00
Windows 的 c++吗, 0x00001000 有什么意义?
zjsxwc
2020-07-23 08:31:47 +08:00
@zjsxwc http://blog.sina.com.cn/s/blog_55215b6f0100m1ae.html

在 WIN32 中,每个应用程序都可“看见”4GB 的线性地址空间,其中最开始的 4MB 和最后的 2GB 由操作系统保留,剩下不足 2GB 的空间用于应用程序私有空间。具体分配如下:0xFFFFFFFF-0xC0000000 的 1GB 用于 VxD 、存储器管理和文件系统; 0xBFFFFFFF-0x80000000 的 1GB 用于共享的 WIN32 DLL 、存储器映射文件和共享存储区; 0x7FFFFFFF-0x00400000 为每个进程的 WIN32 专用地址; 0x003FFFFF-0x00001000 为 MS-DOS 和 WIN16 应用程序; 0x00000FFF-0x00000000 为防止使用空指针的 4,096 字节。以上都是指逻辑地址,也就是虚拟内存。
zjsxwc
2020-07-23 08:33:27 +08:00
所以楼主维护的是一个 DOS 程序?逃
widewing
2020-07-23 08:42:01 +08:00
所以返回一个常数是什么意思?还没实现的函数?
idealhs
2020-07-23 09:17:22 +08:00
所有现代操作系统下应用程序都操作的是自身被分配的逻辑地址吧,这个影响不到别的软件或者系统的。
wangritian
2020-07-23 09:59:24 +08:00
这个地址上的内容是什么?可以确定每次编译后对应的内容一定放在那个地址?
xyzzzz
2020-07-23 10:15:53 +08:00
可能通过链接脚本把某些东西放到了这个地址上哦?
liuminghao233
2020-07-23 12:23:09 +08:00
看不出哪里骚
只看到了屎山的脚
LANB0
2020-07-23 14:12:13 +08:00
@lechain 做嵌入式的表示不背这锅,位操作、拿着指针可劲儿偏移访问各种数组结构体、来自内核的 offsetof 等等都是精巧设计。楼主这个算什么?除了从特定地址写 flash 这种特殊场景,根本就不可能这么玩儿
lechain
2020-07-23 21:43:01 +08:00
@LANB0 不好意思对你造成误会了,我说的不是嵌入式精巧的地方,是“shi 山”😂
mingl0280
2020-07-23 22:27:18 +08:00
@zjsxwc
@wangritian
@xyzzzz 都不是,就是屎代码(这个人离职之前搞出了一大堆狗屎代码,全组都在慢慢给丫的收拾烂摊子)
mingl0280
2020-07-23 22:28:23 +08:00
@LANB0 最离谱的是,这根本不是嵌入式代码,嵌入式的代码在另外一个分支上,那个分支除了我们几个看得懂 C51 和 Keil 的没人敢碰,所以代码质量比这个玩意儿高一大截...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/692367

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX