我正在尝试将另一个文件中的函数包含在“主”文件中。我遵循这个范式:
http://www.learncpp.com/cpp-tutorial/18-programs-with-multiple-files/
这是我的主文件 digispark.cpp:
#include <iostream>
using namespace std;
int send(int argc, char **argv);
int main()
{
char* on;
*on = '1';
char* off;
*off = '0';
send(1,&on);
return 0;
}
这是我的 send.cpp:
#include <stdio.h>
#include <iostream>
#include <string.h>
#if defined WIN
#include <lusb0_usb.h> // this is libusb, see http://libusb.sourceforge.net/
#else
#include <usb.h> // this is libusb, see http://libusb.sourceforge.net/
#endif
// I've simplified the contents of send for my debugging and your aid, but the
// complicated arguments are a part of the function that will eventually need
// to be here.
int send (int argc, char **argv)
{
std::cout << "Hello";
return 0;
}
我正在使用 g++ 编译器在 Ubuntu 12.10 上编译,如下所示:
g++ digispark.cpp send.cpp -o digispark
它编译成功。
但是,当我运行程序时,“Hello”没有出现。因此,我根本不相信该函数被调用。我究竟做错了什么?任何帮助都会很棒!谢谢!
编辑:
我是如何处理这个问题的:
int send(int argc, char **argv);
int main()
{
char* on[4];
on[0] = (char*)"send";
on[1] = (char*)"1";
char* off[4];
off[0] = (char*)"send";
off[1] = (char*)"0";
send(2,on);
return 0;
}
对于那些对我为什么坚持这样做感到困惑的人,正如我之前所说,send 函数已经构建为接受 char** argv(或 char* argv[])。我的意思是在我的主要功能中尝试模仿它。
重写 send 函数中实际使用的函数以采用不同类型的参数,而不仅仅是发送它想要的参数,这要困难得多。感谢大家!
因此,如果这有助于任何尝试类似事情的人,请随意使用它!