Chinaunix

标题: 请教c++中调用c函数的实现问题 [打印本页]

作者: chenjinhuo    时间: 2005-03-16 18:48
标题: 请教c++中调用c函数的实现问题
今天看c++primer,说c++中使用extern "c'" ,可以调用c函数,结果出错,请指教。
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

/*保存为.cpp,作为工程的主文件*/
#include<iostream>;
#include<stdlib.h>;
using namespace std;
extern "c" void cushu();
int main( )
  {
void  cushu();

system("pause";

}

/* c函数实现:保存为.c,作为工程中的一个文件*/
#include "stdio.h"
#include "conio.h"
void cushu()
{
  int i,j,k;
  printf("\n";
  for(i=1;i<5;i++) /*以下为三重循环*/
    for(j=1;j<5;j++)
      for (k=1;k<5;k++)
      {
        if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/
        printf("%d,%d,%d\n",i,j,k);
      }
  getch();
}
问题2:c++工程文件中可以同时编译c++和c文件吗?若能,应该在c++主文件中怎样实现它啊?
谢谢高手指点。
作者: prc    时间: 2005-03-17 12:44
标题: 请教c++中调用c函数的实现问题
编辑Makefile文件


  1. all: test

  2. test: main.o sushu.o
  3.   gcc -o test main.o sushu.o

  4. main.o: main.cpp
  5.   g++ -c -o main.o main.cpp

  6. sushu.o sushu.c
  7.   gcc -c -o sushu.o sushu.c
复制代码


然后在命令行里输入make
作者: unicorns    时间: 2005-03-17 15:33
标题: 请教c++中调用c函数的实现问题
既然两个文件都是你自己写
那就全用C++编译器编译不就好了.
何必如此麻烦呢.
作者: HeavenTear    时间: 2005-03-19 00:47
标题: 请教c++中调用c函数的实现问题
gcc可以根据你的souce file的后缀来确定用把symbol编译成c style的,或是c++ style的。这是因为c++允许overloading,而c不可以。

建议如果用到template library,使用g++编译。
用gcc还要manually link stdc++.
作者: mingjwan    时间: 2005-08-11 20:32
标题: 请教c++中调用c函数的实现问题
大侠,给出完整的命令格式还好啊?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2