为什么这个代码在visual studio 2019中编译无错误无警报,而运行时会出现错误?

为什么这个代码在visual studio 2019中编译无错误无警报,而运行时会出现错误?

LNK1120 2 个无法解析的外部命令    Test    E:\ProgramData\C Files\Test\Debug\Test.exe  1       
LNK2001 无法解析的外部符号 _num1   Test    E:\ProgramData\C Files\Test\main.obj    1       
LNK2001 无法解析的外部符号 _num2   Test    E:\ProgramData\C Files\Test\main.obj    1       


#include <stdio.h>
void swap() {
    extern int num1;
    extern int num2;
    int temp;
    temp = num1;
    num1 = num2;
    num2 = temp;
}

int main(int argc, const char* argv[])
{
    int num1 = 3;
    int num2 = 8;
    swap();
    printf("num1 = %d\nnum2 = %d\n", num1, num2);
    return 0;
}

项目—属性—配置属性—C/C++—高级
在 禁用特定警告 后加4996 之后点确定保存修改