小编See*_*are的帖子

Visual Studio 2015:在没有运行时库的情况下编译C/C++

有没有一种方法可以在不使用任何运行时库的情况下使用Visual Studio 2015编译C/C++?

我需要在没有运行时库的情况下进行编译,因为我正在创建自己的运行时库(对于我的操作系统).

C/C++上有选项 - >代码生成 - >运行时库
但我想要一个"无"的选项.

我知道丢失了CRT中的很多功能.

c c++ crt visual-studio

11
推荐指数
1
解决办法
3222
查看次数

在没有编译器的情况下创建C函数会生成序言/结尾和RET指令?

考虑以下功能:

void foo(){
    //do something
}
Run Code Online (Sandbox Code Playgroud)

在组装时,它看起来像这样(不准确):

push something

;do stuff

pop something
ret
Run Code Online (Sandbox Code Playgroud)

但是我不想要这个生成的代码(RETPUSHPOP ...)。我只想在代码块上加上标签,所以我必须返回自己:

void bar(){
    //do something
    asm("iret") //i want to use this function as a ISR
}
Run Code Online (Sandbox Code Playgroud)

并在组装中看起来像这样:

; do something
iret
Run Code Online (Sandbox Code Playgroud)

没有PUSHPOPRET。是否有任何预处理器指令或关键字可以帮助我完成此任务?

我正在Windows下使用GCCNASM,并且试图生成自己的中断服务例程(ISR)。

c x86 assembly gcc nasm

5
推荐指数
1
解决办法
2110
查看次数

C++ 覆盖基成员值

我有以下代码:

class A
{
public:
    int foo = 0;
};

class B: public A
{
public:
    int foo = 1;
};

int main()
{
    A *a = new B();

    std::cout << a->foo;
    std::getchar();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:0

为什么 B 不覆盖 A 中的成员 foo ?

以及如何在不强制转换为派生类的情况下获得所需的 1 输出

c++ inheritance class derived base

2
推荐指数
2
解决办法
3178
查看次数

标签 统计

c ×2

c++ ×2

assembly ×1

base ×1

class ×1

crt ×1

derived ×1

gcc ×1

inheritance ×1

nasm ×1

visual-studio ×1

x86 ×1