1
blackdesk 2020-07-23 06:11:47 +08:00 via Android
这稀奇在什么地方呢
|
2
x1596357 2020-07-23 07:06:32 +08:00 via iPhone
不稀奇,这么低的地址,感觉是硬件初始化的东西。
|
3
leimao 2020-07-23 07:27:31 +08:00 via iPhone
反正不是 best practice,没事不要这么写
|
4
mingl0280 OP @x1596357 并不是硬件初始化,软件是运行在 Linux 上的,稍微做了一下跨平台而已.后面用完这个东西的时候,这行会导致意外地遇到 delete 0x1000 这种神奇的玩意儿.
|
5
nightv2 2020-07-23 07:46:03 +08:00 via Android
这指针就不能删除吧
|
6
gowk 2020-07-23 07:55:13 +08:00 via Android 8
看成:今天在公司看见一个骚货…
|
7
vk42 2020-07-23 08:14:40 +08:00
看不出来骚在哪,也没有足够上下文。一般说骚操作应该也有巧妙的含义吧
|
8
lechain 2020-07-23 08:16:44 +08:00 via Android
这就骚操作了?那嵌入式 c 代码 shi 山里面绝对还有一大堆你没见过的“骚操作”(逃
|
9
zjsxwc 2020-07-23 08:27:59 +08:00
Windows 的 c++吗, 0x00001000 有什么意义?
|
10
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 字节。以上都是指逻辑地址,也就是虚拟内存。 |
11
zjsxwc 2020-07-23 08:33:27 +08:00
所以楼主维护的是一个 DOS 程序?逃
|
12
widewing 2020-07-23 08:42:01 +08:00 via Android
所以返回一个常数是什么意思?还没实现的函数?
|
13
idealhs 2020-07-23 09:17:22 +08:00
所有现代操作系统下应用程序都操作的是自身被分配的逻辑地址吧,这个影响不到别的软件或者系统的。
|
14
wangritian 2020-07-23 09:59:24 +08:00
这个地址上的内容是什么?可以确定每次编译后对应的内容一定放在那个地址?
|
15
xyzzzz 2020-07-23 10:15:53 +08:00 1
可能通过链接脚本把某些东西放到了这个地址上哦?
|
16
liuminghao233 2020-07-23 12:23:09 +08:00 via iPhone
看不出哪里骚
只看到了屎山的脚 |
17
LANB0 2020-07-23 14:12:13 +08:00
@lechain 做嵌入式的表示不背这锅,位操作、拿着指针可劲儿偏移访问各种数组结构体、来自内核的 offsetof 等等都是精巧设计。楼主这个算什么?除了从特定地址写 flash 这种特殊场景,根本就不可能这么玩儿
|
19
mingl0280 OP |
20
mingl0280 OP @LANB0 最离谱的是,这根本不是嵌入式代码,嵌入式的代码在另外一个分支上,那个分支除了我们几个看得懂 C51 和 Keil 的没人敢碰,所以代码质量比这个玩意儿高一大截...
|
21
rohgeo 2020-07-24 13:18:24 +08:00
返回一个固定的地址?。。。
|
22
sl0000 2020-09-02 15:56:24 +08:00
这种一般都出段错误
|