我目前正在努力将一些C文件移植到64位Matlab,这些文件是用32位Matlab进行的 .

在这样做时,我遇到了两种类型,一种来自Matlab人,一种来自C标准 .

这是Matlab文档中关于mwSize的内容:

mwSize(C和Fortran)大小值的类型说明mwSize是一种表示大小值的类型,例如数组维度 . 使用此功能可实现跨平台灵活性 . 默认情况下,mwSize等效于C中的int . 使用mex -largeArrayDims开关时,mwSize等效于C中的size_t . 在Fortran中,mwSize类似于INTEGER * 4或INTEGER * 8,基于平台和编译标志 .

这就是维基百科对size_t的评价:

size_t是由stddef.h中定义的几个C / C标准(例如,C99 ISO / IEC 9899标准)定义的无符号数据类型 . [1]它可以通过包含stdlib.h进一步导入,因为这个文件内部子包含stddef.h [2] . 此类型用于表示对象的大小 . 采用或返回大小的库函数期望它们属于此类型或返回类型为size_t . 此外,最常用的基于编译器的运算符sizeof应该计算为与size_t兼容的值 . size_t的实际类型取决于平台;一个常见的错误是假设size_t与unsigned int相同,这可能导致编程错误,[3] [4]例如从32位移植到64位架构时 .

据我所知,这些类型实际上是相同的 . 我的问题是:1)是吗? 2)如果是,哪一个被认为是更好的编程品味使用 . 理想情况下,我们希望我们的代码与未来的Matlab版本兼容 . 我猜测答案是mwSize,但我不确定 .

编辑:我应该补充一点,Matlab人正在使用两者 . 例如,

size_t mxGetN(const mxArray *pm);

是一个检索mxArray列数的函数 . 但是,当一个人创建矩阵时,人们会使用,

mxArray *mxCreateDoubleMatrix(mwSize m, mwSize n, mxComplexity ComplexFlag);

输入显然应该是mwSize .

matlab sizeof size,使用Matlab进行MEXing C时,size_t和mwSize之间的差异相关推荐

  1. matlab函数 size()函数和waterfal()l函数,三维图形,矩阵

    matlab中size函数的用法: size()用来求矩阵的维度, [r,c]=size(A),这样获得矩阵的大小,r矩阵的行数,c矩阵的列数 r=size(A,1)获得矩阵的行数 c=size(A, ...

  2. MATLAB的size()函数的返回值是一个1*2的向量哦,即使参数是向量也是1*2的向量哦!

    MATLAB的size()函数的返回值是一个1*2的向量哦,即使参数是向量也是1*2的向量哦! 返回的向量第一个元素表示有多少行,第二个元素表示有多少列,如果size()的输入参数是一个向量,那么返回 ...

  3. ndims matlab,MATLAB的size(),length(),ndims()函数

    MATLAB的size(),length(),ndims()函数 (2010-08-07 19:41:00) 标签: size() length() ndims() 杂谈 size(a)表示矩阵每个维 ...

  4. matlab legend对齐,MATLAB中不正确的图例框大小?(Improper legend box size in MATLAB?)

    MATLAB中不正确的图例框大小?(Improper legend box size in MATLAB?) 我遇到了一个问题,即字体大小更改时图例框不会自动调整大小. x = [1 4 6 8 0 ...

  5. MATLAB里面size什么意思,简述Matlab中size()函数的用法

    搜索热词 size()函数用来获取矩阵的行数和列数. (1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数. (2)[r,c]=s ...

  6. matlab的combuilder系列-matlab下做com组件 zzfrom SMTH bbs

    matlab的combuilder系列-matlab下做com组件 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com ...

  7. 在matlab如何调用库函数,Matlab调用外部库函数方法和注意事项

    在MATLAB环境下访问外部函数的共享库文件,必须首先把该库文件加载到内存中.一旦加载成功,就 能直接在MATLAB中直接请求关于函数的任何信息.而当不再需要该库时,就应当及时把库文件从内存 中卸载以 ...

  8. 怎么把dll库写成MATLAB接口,如何在Matlab中应用动态连接库接口技术

    1 引言 Matlab是当前应用最为广泛的数学软件,具有强大的数值计算.数据分析处理.系统 分析.图形显示甚至符号运算等功能.利用这一完整的数学平台,用户可以快速实现十分 复杂的功能,极大地提高工程分 ...

  9. matlab 自定义对象,面向对象:MATLAB的自定义类 [MATLAB]

    这几天刚刚开始学习MATLAB的面向对象编程.以前做的事情都是用MATLAB写一些简单的脚本或者函数,这方面MATLAB成熟的函数和直截了当的矩阵运算方法和语法都很容易上手,方便人专注于算法本身.前几 ...

最新文章

  1. json转换模型利器--JSONExport
  2. CentOS 7 SSH 免密登录的方法
  3. mybatis学习(20):模糊查询$
  4. 领域情报搜索实践:真实场景下的问答实施策略与风险分析
  5. Linux 启动顺序
  6. 别人运行的好好的R代码,到我这怎么就冲突了?
  7. 乐视网1354项商标1.3亿元成交,接盘的是这家公司
  8. php 查询和redis,php如何查询redis
  9. wxPython练习
  10. Linux上卸载JDK
  11. win10 uwp 访问解决方案文件
  12. 手游本地化不得不看的10条规则
  13. 正面管教读书笔记 09 家庭会议
  14. 【数论】线性筛与积性函数
  15. Java利用数组求某年某日某月是某年的第几天(数组)
  16. 大数据峰会议题公开,顶级技术+实践经验先睹为快
  17. 汽车电子功能安全标准ISO26262解析(四)——FMEDA
  18. 阿尔茨海默病与正常衰老中的脑萎缩研究进展
  19. 养生996的崛起:马云为什么给他最痛恨的兔子军团站台?
  20. quartus下载的时候program/configure verify blank-check 这些选项的作用

热门文章

  1. Chrome中使用showModalDialog无法接收返回值,解决方案
  2. WebBrowser提交submit后界面不刷新的解决办法
  3. [转]perl里使用外部命令
  4. RTTI、dynamic_cast、typeid、虚函数表
  5. ssm校园帮代服务系统的设计与实现答辩PPT模板
  6. python 写文件 编码_Python文件写入时的编码问题解决
  7. leetcode同样的代码 网上结果和本地结果不一样_Leetcode #263
  8. php链表构造,用PHP实现单向链表结构
  9. 计算机安全知识讲座,计算机学院安全知识讲座:防火防电防诈骗 人身安全记心间...
  10. java swagger ui 教程_java集成Swagger的步骤详解