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

原创 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_weekly
  • java_weekly
  • 2017年05月31日 17:34
  • 299

请教一个SurfaceView 的问题

直接贴代码: package com.zte.engineer; import android.content.Context; import android.content.Intent; imp...
  • goodtalent
  • goodtalent
  • 2014年11月27日 10:11
  • 652

rsync安装 /配置及异常处理

1 rsync简述     rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync。它的特性如下: 可以镜像保存整个目录树和文件系统。 可以...
  • lucklyming
  • lucklyming
  • 2013年12月05日 16:07
  • 329

请教一个关于Android GPS的问题

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContent...
  • huamian3322
  • huamian3322
  • 2017年01月02日 13:52
  • 62

请教一个 free 函数的问题

程序代码: #include "stdafx.h" #include #include #include int str_to_num(char *str,int n); ...
  • moyulinggdi
  • moyulinggdi
  • 2014年06月29日 11:07
  • 260

如何请教别人问题?

提问的智慧。
  • qq_35952082
  • qq_35952082
  • 2017年03月03日 10:41
  • 274

英文邮件礼仪:向教授请教学术问题

邮件主题 邮件主题(subject)不需要写自己的名字。名字是在邮件系统设置里设定好的,在发件时会替换显示实际地址,所以无需在主题里再写一遍。 [关键内容是要在主题里就写明白是否有推荐人,以及主要...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年03月15日 18:37
  • 2572

myelipse初学者遇到的小问题

一、myelipse怎 左边的项目文件找不到了 在有上角那个改成工程的就是了,我这个事myeclipse工程 改好就可以了 二、改回默认视图 Windows—reset perspectiv...
  • qq_29310863
  • qq_29310863
  • 2017年03月16日 20:14
  • 85

给一位27岁的编程初学者回答的四个问题

【来信】贺老师:  您好。在网上看了您给IT学子的指导,有几个问题想请教你。我是半年前发现自己对编程有兴趣,然后自学了VBA和部分python。期间用VBA写过一些功能简单的宏。目前在全力学习pyth...
  • sxhelijian
  • sxhelijian
  • 2013年03月23日 11:00
  • 5988

SVM通俗和深刻的理解方法

1、什么是支持向量机? SVM(support vector machine)简单的说是一个分类器,并且是二类分类器。 Vector:通俗说就是点,或是数据。 Machine:也就是...
  • mvpxiaoguai
  • mvpxiaoguai
  • 2017年11月28日 22:29
  • 18
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:初学者的问题,请教各位大侠一个小问题
举报原因:
原因补充:

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