error LNK1120 and LNK2019:该符号在函数main中被引用

作者在使用C++编写涉及函数指针的代码时遇到了errorLNK2019错误,通过仔细检查发现是因为参数类型不匹配导致的简单bug。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x00 开篇

       昨天,本来是一个好日子的,然后我默默的随便拿出一本C++书随便练练语法写写代码的,找到一行关于C++内函数指针的例子,其功能就是将一个函数的地址作为地址传给另一个函数,以指针的形式在另一个函数章调用,然后写完了,出现了传说中的error LNK2019,但是就是那个一个不到三十行的代码,让我找bug找了一个多小时,今天早上才找到。注意,本文无任何技术含量,权当吐槽一波了。

0x01 详情

       原代码有点长,这里贴出那出错的一部分代码(与函数指针无关):

//有bug
#include <iostream>
#include <string>

using namespace std;
void display(const string str[], int n);

int main(int argc, char *argv[])
{
    string str[3];

    str[0] = "123";
    str[1] = "qwe";
    str[2] = "456";

    display(str, 3);

    return 0;

}

void display(const string str, int n)
{
    using namespace std;

    for (int i = 0; i < n; i++)
        cout << i + 1 << ":" << str[i] << endl;
}

       全怪我对自己的水平过于自信了,感觉自己不可能犯什么低级错误,我沿着是否是工程建的不对的方向上网搜搜:

  • C++ VS2013 该符号在main中被引用
  • C++ error LNK2019
  • C++ 函数调用
           从上面的问题可以看出,似乎我的状态是越来越迷惑,我就随便试试这么个功能就出现这么个问题,果然写代码的时候不能吊儿郎当的,最后简直都怀疑到C++函数调用上了,但是我就是没有老老实实看看原代码。到了早上,,我还是不能容忍居然那么几行代码还能藏个大bug,其实按照经验,我已经感觉到了这特么肯定是一个lowbie的bug,好了,那我看看代码吧,似乎一眼就看出来了:
void display(const string str, int n)
//改成下面就Ok了
void display(const string str[], int n)

       其实已经习惯了,像那种在网上没搜到一点提示信息的,或者相同问题的,基本都是那种lowbie bug。就以此记录一下520改的第一个bug吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值