C语言 为什么这个程序与近指针不工作?

ni65a41a  于 2023-08-03  发布在  其他
关注(0)|答案(1)|浏览(96)

为什么这个带有近指针的程序在VS代码上不起作用?

#include <stdio.h>
 
int main()
{
// declaring a near pointer
int near* ptr;
 
// size of the near pointer
printf("Size of Near Pointer: %d bytes", sizeof(ptr));

return 0;
}

字符串
输出量:


的数据

ojsjcaue

ojsjcaue1#

近指针特定于一些较旧的C编译器和体系结构,它不是现代编译器支持的标准C语言的一部分,包括Visual Studio Code中使用的编译器。近指针主要用于16位DOS编程中的内存模型,如“近”内存模型。
在现代C编程中,你不会在标准用法中找到近指针。相反,今天的编译器使用“平面”内存模型,其中所有指针实际上都是相同的,并且近指针和远指针的概念已经被消除。
如果您尝试在现代C编译器(包括Visual Studio Code中使用的编译器)上使用near指针编译程序,则可能会导致编译错误,因为编译器无法识别near关键字。
要在Visual Studio Code中使用标准C指针,您可以声明和使用不带任何内存模型限定符的指针:

#include <stdio.h>
 
int main()
{
    // declaring a pointer
    int* ptr;
 
    // size of the pointer
    printf("Size of Pointer: %zu bytes", sizeof(ptr));

    return 0;
}

字符串

相关问题