sizeof()与_countof()用法
sizeof() :返回所查询目标所占用字节数
_countof() :返回所查询目标所含有元素个数
先看程序:
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
char *a = "abcde";
char sz1[] = "abc";
char sz2[] = {"abc"};
char sz3[] = { 'a', 'b', 'c' };
printf_s( "%d %d %d %d", _sizeof(a), _countof(sz1), _countof(sz2), _countof(sz3) );
cout<<endl;
int b[] = {1,2,3};
cout<<sizeof(b)<<" "<<_countof(b)<<endl;
return 0;
}
程序输出:4 4 4 3
12 3
***************************************************************************
_countof 是 C++中计算一个固定大小数组长度的宏,比如:
T arr[10];
for( size_t i = 0; i<_countof(arr); --i ) do_something();
对于固定大小数组计算起来非常方便。
/* _countof helper */
#if !defined(_countof)
#if !defined(__cplusplus)
#define _countof(_Array) (sizeof(_Array) / sizeof(_Array[0]))
#else
extern "C++"
{
template <typename _CountofType, size_t _SizeOfArray>
char (*__countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]))[_SizeOfArray];
#define _countof(_Array) sizeof(*__countof_helper(_Array))
}
#endif
#endif
用宏计算的方式容易理解,但是编译期语法检查不够严格。C++中使用了比较严格的语法,确保传入的参数是固定数组。
C++采用type_traits的方式来提取给定数组的信息,通过一个模板函数来完成这个操作:
__countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]) 函数来提取_Array的信息:
参数为_Array的引用,保证传入参数必须为固定数组,类型为_CountofType, 大小为_SizeofArray.
返回值为: char (*Arr)[_SizeofArray];指向大小为_SizeofArray 的char类型的数组的指针。
sizeof()与_countof()用法相关推荐
- sizeof函数的用法
sizeof函数的用法: 1.sizeof()函数是用来计算变量所占内存空间的大小,单位是字节(byte) 举例如下: #define _CRT_SECURE_NO_WARNINGS #include ...
- C++ sizeof 操作符的用法总结
在VC中,sizeof有着许多的用法,而且很容易引起一些错误.下面根据sizeof后面的参数对sizeof的用法做个总结. A.参数为数据类型或者为一般变量: 例如sizeof(int),sizeof ...
- sizeof,strlen用法详解
sizeof 前向声明: sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着"辛苦我一个,幸福千万人"的伟大思想,我决定将其尽可能详细的总结一下. 但 ...
- c语言中sizeof函数的作用是,c语言中sizeof函数的用法
C语言sizeof函数如何使用? 怎样利用sizeofCSS布局HTML小编今天和大家分享各种数据类型占用的字节数? (1)sizeof不是函数,它只是一个操作符(operator). (2)size ...
- c语言中sizeof函数的用法,sizeof函数怎么用 sizeof函数的使用方法
sizeof函数是pascal语言当中的一种内存容量度量的函数,这一个函数计算得到的结果是返回一个变量或者一个类型的大小;在c语言当中,sizeof函数这是一个能够判断数据类型,或者是表达式长度的一个 ...
- C++ sizeof用法总结
sizeof sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节. 返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标 ...
- C语言sizeof用法
sizeof 关键字的用法 sizeof给我们的印象就是像一个函数一样,可以传进去参数,也有一个返回值,但是他的本质呢,不是一个函数,而是: sizeof是编译器的内置指示符 sizeof用于计算类型 ...
- sizeof用法详解
一.sizeof是什么 sizeof是C语言的一种单目操作符,如C语言的其他操作符++.–等.它并不是函数.sizeof操作符以字节形式给出了其操作数的存储大小.操作数可以是一个表达式或括在括号内的类 ...
- C++ sizeof用法
sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节. 返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的头文件stdd ...
最新文章
- AI4U:以用户友好为目标,智源重大研究方向“机器学习”学者候选人发布
- linux 内核 同步机制
- 如何让你的 JS 写得更漂亮,看这篇就对了!
- Fedora12上编译安装gdb-7.2
- RSYNC及其算法简单介绍
- 调整KDevelop字体大小
- Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环境
- hdu 2896 AC自动机
- socket简介 - 获取简单网页内容
- Java获取字符串长度(length())
- Oracle LOB 详解
- 分享sina的短链生成java代码
- 交互设计指南 iphone_交互设计:角色创建指南
- 如何读写一篇优秀的计算机论文
- python设置时间过期改变状态_将Python程序设置为在特定天数后过期
- c如何将数组初始化为0?
- 磁盘磁带光盘是计算机系统中,磁盘、磁带和光盘是计算机系统中最常用的( )
- matlab表示sa函数,SA:T1编写主函数法和T2Matlab自带的SA工具箱GUI法,两种方法实现对二元函数优化求解——Jason niu...
- 丹佛斯冷媒尺汉化下载_下载适用于Android的冷媒尺 Refrigerant Slider - Appszoom
- 45 周岁、IPIP 的七年之痒与最坏打算~