(转)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 */ 用宏计算的方式容易理解,但是编译期语法检查不够严格。C++中使用了比较严格的语法,确保传入的参数是固定数组。 C++采用type_traits的方式来提取给定数组的信息,通过一个模板函数来完成这个操作: __countof_helper(UNALIGNED _CountofType (&_Array)[_SizeOfArray]) 函数来提取_Array的信息: 参数为_Array的引用,保证传入参数必须为固定数组,类型为_CountofType, 大小为_SizeofArray. 返回值为: char (*Arr)[_SizeofArray];指向大小为_SizeofArray 的char类型的数组的指针。 |
最新文章
- 图论 - Travel
- Android俄罗斯方块AI设计文档
- nginx 负载均衡策略
- Qt5 QTableWidget设置列表自动适应列宽
- Call C# in powershell
- 基于deb包快速搭建内外apt源
- 简单实用 “易忘” 的SQL 语句语法,新老皆宜
- iOS keyChain(钥匙串)的简单使用
- [编织消息框架][传输协议]sctp
- linux -->; 获取系统启动时间
- git push时报错:Updates were rejected because the tip of your current branch is behind
- 获取百度地图POI数据三(模拟关键词搜索)
- [20181130]如何猜测那些值存在hash冲突.txt
- 牛客网-2018年全国多校算法寒假训练营练习比赛(第四场)-A
- Ajax 执行顺序
- Grafana 安装及 Windows 应用程序服务配置工具 NSSM使用
- django-ajax post与get请求
- ubuntu解压命令(转)
- 网页登入验证码的实现(java&;html)
- ubuntu下安装配置minicom(解决默认的端口/dev/tty8,改不过来的问题)