初学者的问题,请教各位大侠一个小问题

原创 2017年01月19日 09:05:10
本人在看c++ primer入门书,其中有个extern的关键字,代码如下,为什么第一段代码能编译通过,而第二段代码不能编译通过?



// 第一段
#include "stdafx.h"
const char *strs = "hello";
extern "C" void *malloc( int );
extern "C" char *strcpy( char *, const char * );
extern "C" int printf( const char *, ... );
extern "C" int exit( int );
extern "C" int strlen( const char * );


int _tmain(int argc, _TCHAR* argv[]){
char* s = (char *)malloc( strlen(strs)+1 );
strcpy( s, strs );
printf( "%s, world\n", s );
exit( 0 );
}



// 第二段
#include "stdafx.h"
#include <cstdlib>  // 和第一个不同的
const char *strs = "hello";
extern "C" void *malloc( int );
extern "C" char *strcpy( char *, const char * );
extern "C" int printf( const char *, ... );
extern "C" int exit( int );
extern "C" int strlen( const char * );


int _tmain(int argc, _TCHAR* argv[]){
char* s = (char *)malloc( strlen(strs)+1 );
strcpy( s, strs );
printf( "%s, world\n", s );
exit( 0 );
}


编译器提示什么 Error 1 error C2733: second C linkage of overloaded function 'malloc' not allowed e:\workspace\vc\ccc\ccc\ccc.cpp 97
Warning 2 warning C4273: 'printf' : inconsistent dll linkage e:\workspace\vc\ccc\ccc\ccc.cpp 99
Error 3 error C2556: 'int exit(int)' : overloaded function differs only by return type from 'void exit(int)' e:\workspace\vc\ccc\ccc\ccc.cpp 100
Error 4 error C2371: 'exit' : redefinition; different basic types e:\workspace\vc\ccc\ccc\ccc.cpp 100
Error 5 error C3861: 'exit': identifier not found e:\workspace\vc\ccc\ccc\ccc.cpp 108



Java初学者解惑

-
  • 1970年01月01日 08:00

向各位大侠请教

CSDN网上的各位大侠们,在下是个VFP迷。虽然当今数据库世界人们言必称ASP,.NET,JAVA,SQL,DELPHI,ORACLE,但是我等小国寡民,层次不高,范围不广,实际工作运用上还是偏爱那个...
  • yy_53827765
  • yy_53827765
  • 2005-04-02 12:18:00
  • 730

关于Java中字符串的用法总结

      语法学了一大堆了,现在总结一下String的各种语法好了。      1、String的声明String str_1 = new String(&quot;I'm a common str...
  • as6757uyy65uy75
  • as6757uyy65uy75
  • 2018-02-19 23:01:23
  • 46

请教各位一个问题?

农业合作社购买了一些化肥,已库了。前不久销售了一部分,以现金的形式。请教各位,会计分录该如何记?谢谢!...
  • tazicheng
  • tazicheng
  • 2010-08-05 17:31:00
  • 56

我想请教各位大侠个问题?

为什么我的手机在网吧连上数据线能用 在我的电脑上就不行?说是没有驱动有显示的图标就是打不开?说明:我的手机是个水货什么牌子也不知道,不过功能挺多的,还有我的数据线的接口比2.0的小点谢谢帮忙...
  • guoxiaofei_bluesky
  • guoxiaofei_bluesky
  • 2007-05-25 21:08:00
  • 255

DevExpress控件之GridControl控件

GridControl这个第三方控件是VS2005自带的datagridview控件的重写版本。对于一些grid外观,模板列的设置有非常简单的方法.而且控制起来基本和datagridview一样.所以...
  • u014180504
  • u014180504
  • 2014-12-16 14:19:16
  • 686

请教各位一个c++问题

  #include   int *d= 0; void function(int& e){        cout } void main(){        d+=2;        functi...
  • xuan_bin
  • xuan_bin
  • 2007-07-06 00:49:00
  • 229

请教各位高手一个问题?

  我想请教一下,在win98的IE4下机能不能访问到asp.net的页面呢?
  • wygggyxtf
  • wygggyxtf
  • 2004-11-03 10:39:00
  • 468

关于测试一个windows动态链接库的问题;请教各位大侠!

Blog是你的个人专栏,技术问题请到社区提出。非技术文章请勿胡乱勾选技术类别,这次我帮你改了,下次再犯直接删除。——管理员。有如下程序:// test1.cpp : Defines the entry...
  • wshy98
  • wshy98
  • 2004-08-21 14:19:00
  • 458

朋友提出的一个有趣的经济学问题

    今天一个同学问了我这样一个问题。我从来没有研究过这方面的问题,同时也觉得这个问题比较有趣味性,在这里发出来,希望大家能提供一些想法。    通货膨胀的具体表现就是物价上涨,货币贬值。那么...
  • matrix67
  • matrix67
  • 2007-11-20 17:21:00
  • 451
收藏助手
不良信息举报
您举报文章:初学者的问题,请教各位大侠一个小问题
举报原因:
原因补充:

(最多只允许输入30个字)