免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1870 | 回复: 4
打印 上一主题 下一主题

[C++] 请教c++中调用c函数的实现问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-03-16 18:48 |只看该作者 |倒序浏览
今天看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++主文件中怎样实现它啊?
谢谢高手指点。

论坛徽章:
0
2 [报告]
发表于 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

论坛徽章:
0
3 [报告]
发表于 2005-03-17 15:33 |只看该作者

请教c++中调用c函数的实现问题

既然两个文件都是你自己写
那就全用C++编译器编译不就好了.
何必如此麻烦呢.

论坛徽章:
0
4 [报告]
发表于 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++.

论坛徽章:
0
5 [报告]
发表于 2005-08-11 20:32 |只看该作者

请教c++中调用c函数的实现问题

大侠,给出完整的命令格式还好啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP