c语言string.h和memory.h某些函数重复问题
在C语言中,为了使用memset()函数,你是选择#include <string.h>还是<memory.h>?两个都可以,如何选择?
<string.h>,标准里面这么写的,全平台通用,<memory.h> 这个 大部分编译器都实现了。
http://pubs.opengroup.org/onlinepubs/7908799/xsh/string.h.html
http://www.cplusplus.com/reference/clibrary/cstring/
VC10里面,memory.h定义了string.h里面的部分函数,包括memset、memchr、memcmp以及相关的安全操作,定义的部分是和string.h里面一模一样的。而gcc(4.4.5)里面,memory.h里面就直接写了#include<string.h>。
所以,我觉得没有必要按照这个所谓的事实标准来。所有标准上都说memset定义在string.h里面,你非要搞一个大家都不知道的memory.h出来,何必呢?这样做不见得会好理解。而且,这个文件还搜不到资料,如果用find命令找一下,我还真不知道有这个东西呢。
有关内存操作尽量用memory.h,做到见名知意。
有一点奇怪的是malloc,free头文件是
stdlib.h里。
c语言string.h和memory.h某些函数重复问题的更多相关文章
- C语言string.h中常用字符函数介绍
原文:http://www.cnblogs.com/xuwenmin888/archive/2013/05/03/3057883.html strcpy 函数名: strcpy 功 能: 拷贝一个字符 ...
- C标准库string.h中几个常用函数的使用详解
strlen 计算字符串长度 size_t strlen(const char *str) 计算字符串 str 的长度,直到空结束字符,但不包括空结束字符. 函数实现: int Strlen(cons ...
- C语言头文件#include<stdlib.h>的作用
stdlib 头文件即standard library标准库头文件 stdlib 头文件里包含了C.C++语言的最常用的系统函数 该文件包含了的C语言标准库函数的定义 stdlib.h里面定义了五 ...
- stdlib.h,string.h,wchar.h的函数列表(cplusplus.com就有,很清楚)goodx
Multibyte characters mblen Get length of multibyte character (function ) mbtowc Convert multibyte se ...
- 我的C语言的新开端<graphics.h>
进一步接触C语言<graphics.h> #include<stdio.h> #include<graphics.h> #include<conio.h> ...
- c语言_头文件_windows.h
概述 Win32程序的开头都可看到: #include <windows.h> WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件 ...
- C语言 string::size_type类型
string::size_type类型 从逻辑上来讲,size()成员函数似乎应该返回整型数值,或如2.2节“建议”中所述的无符号整数.但事实上,size操作返回的是string::size_type ...
- 尝试实现一个简单的C语言string类型
用过`C++/Java/python/matlab/JS`等语言后,发现都能很轻松的使用string类型,而C只能这样: char str[] = "hello world"; o ...
- 单片机中用c编程时头文件reg51.h及reg52.h解析
单片机中用c编程时头文件reg51.h及reg52.h解析 我们在用c语言编程是往往第一行就是reg51.h或者其他的自定义头文件,我们怎么样来理解呢? 1)“文件包含”处理. 程序的第一行是一个“文 ...
随机推荐
- PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等
页面导航: 首页 → 网络编程 → PHP编程 → php技巧 → 正文内容 PHP安全 PHP开发中常见的安全问题详解和解决方法(如Sql注入.CSRF.Xss.CC等) 作者: 字体:[增加 减小 ...
- C语言之ASCII码
ASCII码 ASCII码值在65~90之间,为大写字母.ASCII码值在97~122之间,为小写字母.ASCII码值在48~57之间,为数字.ASCII码值不在上述3个范围内,为特殊字符.
- 如何用一个语句判断一个整数是不是二的整数次幂——从一道简单的面试题浅谈C语言的类型提升(type promotion)
最近招聘季,看JULY大哥的面试100题时,碰到这么一个扩展问题: 如何用一个语句判断一个整数是不是二的整数次幂?(此题在编程之美也有) easy, 2的整数次幂的二进制形式只有一个1,只要用i和i- ...
- QMessageBox 用法
案例一:QMessageBox msgBox;msgBox.setText("The document has been modified.");msgBox.setInforma ...
- Error Unable to start the Genymotion virtual device.解决
The Genymotion virtual device could not obtain an IP address.For an unknown reason.VirtualBox DHCP h ...
- cocos2dx进阶学习之CCNode
继承关系 CCNode -> CCObject CCNode在cocos2dx中抽象舞台对象,需要渲染的对象都是从CCNode派生,包括CCScene,CCLayer,CCSprite等等 C ...
- 跟我一起学extjs5(25--模块Form的自己定义的设计[3])
跟我一起学extjs5(25--模块Form的自己定义的设计[3]) 自己定义的Form已经能够执行了,以下改一下配置,把Form里面的FieldSet放在Tab之下.改动一下Modu ...
- Oracle执行计划——处理一种并行hint不生效的情况
刚刚在itpub上看到有人在问并行hint不生效的一个问题.我做了实验也出现一样的问题,如下: 原因在这是小表,在联合时走索引了,加上full的hint,就可以启动并行的执行计划. 当然也可以采用pa ...
- git 使用过程(二、创建版本库)
1.显示当前git所在操作文件路径 命令:pwd 2.改变当前操作路径 命令:cd /e/神马神马的,如果想到当前文件夹的某个子目录下,可以直接输入命令:cd 子目录名称,这样就可以了. 3.创建一 ...
- javascript 生成页面轮播元素
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> ...