VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 1322|回复: 14

[原创] 浅谈stdio.h及cstdio的区别

[复制链接]
79_avatar_middle
在线会员 发表于 2016-2-21 14:50:29 | 显示全部楼层 |阅读模式
在C语言中,stdio.h 头文件是主要的。而在后来的C++语言中,C只是C++的一个子集,且C++中,已不推荐再用C的类库,但为了对已有代码的保护,还是对原来的头文件支持。
   cstdio是c++从C的stdio.h继承来的,在前面加C同时不要H后缀,在C++环境当然是选用前者,两者内容都一样,只是cstdio头文件中定义的名字被定义在命名空间std中。使用后者就会带来额外的负担,需要区分哪些是
标准库明是C++特有的,哪些是继承过来的!!所以在C++中要尽量避免C风格的出现!!

cstdio code:
// cstdio standard header
#pragma once
#ifndef _CSTDIO_
#define _CSTDIO_
#include <yvals.h>

#ifdef _STD_USING
#undef _STD_USING
  #include <stdio.h>
#define _STD_USING

#else
#include <stdio.h>
#endif

#define _HAS_CONVENTIONAL_CLIB    1

#define _IOBASE    _base
#define _IOPTR    _ptr
#define _IOCNT    _cnt

#ifndef RC_INVOKED
#if _GLOBAL_USING
_STD_BEGIN
using ::size_t; using ::fpos_t; using ::FILE;
using ::clearerr; using ::fclose; using ::feof;
using ::ferror; using ::fflush; using ::fgetc;
using ::fgetpos; using ::fgets; using ::fopen;
using ::fprintf; using ::fputc; using ::fputs;
using ::fread; using ::freopen; using ::fscanf;
using ::fseek; using ::fsetpos; using ::ftell;
using ::fwrite; using ::getc; using ::getchar;
using ::gets; using ::perror;
using ::putc; using ::putchar;
using ::printf; using ::puts; using ::remove;
using ::rename; using ::rewind; using ::scanf;
using ::setbuf; using ::setvbuf; using ::sprintf;
using ::sscanf; using ::tmpfile; using ::tmpnam;
using ::ungetc; using ::vfprintf; using ::vprintf;
using ::vsprintf;
_STD_END
#endif
#endif

#ifndef _Filet
#define _Filet    FILE
#endif

#ifndef _FPOSOFF
  #define _FPOSOFF(fp)  ((long)(fp))
#endif

#endif


注:本人正在学习状态,文中多有引用,也有解释纰漏之处,敬请包涵、指正!

评分

参与人数 4驿站币 +6 热心值 +6 收起 理由
11_avatar_small 饮水机 + 1 + 1 支持原创!
10_avatar_small cmx006 + 1 + 1 支持原创!
88_avatar_small 寂寞江湖 + 2 + 2
65_avatar_small 编程者 + 2 + 2 支持原创!

查看全部评分





上一篇:一个结构体中的数组可以访问的范围
下一篇:一款类似EXCEL表格的控件cgridctrl最新版
81_avatar_middle
online_moderator 发表于 2016-2-22 09:16:26 | 显示全部楼层
这个得看看,还真不知道有什么区别
04_avatar_middle
在线会员 发表于 2016-2-22 10:54:17 | 显示全部楼层
Mark
浅谈stdio.h及cstdio的区别
71_avatar_middle
在线会员 发表于 2016-2-22 18:34:54 | 显示全部楼层
学习学习
08_avatar_middle
在线会员 发表于 2016-2-22 19:11:07 | 显示全部楼层
浅谈stdio.h及cstdio的区别
04_avatar_middle
在线会员 发表于 2016-2-23 13:39:39 | 显示全部楼层
正在找这个,谢谢分享!
64_avatar_middle
online_vip 发表于 2016-2-23 17:03:20 | 显示全部楼层
xuexi,xuexi
44_avatar_middle
在线会员 发表于 2016-2-24 10:15:10 | 显示全部楼层
看看有什么区别
22_avatar_middle
在线会员 发表于 2016-2-24 21:18:21 | 显示全部楼层
谢谢分享!
看看有什么区别
68_avatar_middle
在线会员 发表于 2016-2-25 15:38:10 | 显示全部楼层
see see浅谈stdio.h及cstdio的区别
74_avatar_middle
在线会员 发表于 2016-2-26 11:35:41 | 显示全部楼层
看看有什么区别
65_avatar_middle
donate_vip 发表于 2016-2-26 18:43:21 | 显示全部楼层
谢谢分享啊
26_avatar_middle
在线会员 发表于 2016-2-27 15:14:09 | 显示全部楼层
stdio.h及cstdio的区别
17_avatar_middle
在线会员 发表于 2016-2-29 09:41:33 | 显示全部楼层
学习了。。。。。。。。。
83_avatar_middle
在线会员 发表于 2016-3-1 09:29:52 | 显示全部楼层
stdio.h及cstdio的区别  C库和STL库吗
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-23 12:19

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表