草庐IT

application-size

全部标签

c++ - 使 size_t 和 wchar_t 可移植?

据我了解,size_t和wchar_t的表示完全是特定于平台/编译器的。例如,我读到Linux上的wchar_t现在通常是32位,但在Windows上是16位。有什么方法可以在我自己的代码中将它们标准化为一组大小(int、long等),同时仍然保持与两个平台上现有标准C库和函数的向后可比性?我的目标基本上是做一些类似typedef的事情,使它们成为固定大小。在不破坏某些东西的情况下这可能吗?我应该这样做吗?有没有更好的办法?更新:我想这样做的原因是我的字符串编码在Windows和Linux上都是一致的谢谢! 最佳答案 听起来您正在寻

c++ - 将 const 添加到 size_t 会导致编译失败是标准行为吗?

我最近读了一篇很酷的文章:https://akrzemi1.wordpress.com/2015/08/20/can-you-see-the-bug/在ideone上玩简化版时,我得到了令人惊讶的行为:#include#includeusingnamespacestd;intmain(){constsize_tsz=258;strings{sz,'#'};assert(2==s.size());}不编译,但是删除const的相同程序编译:#include#includeusingnamespacestd;intmain(){size_tsz=258;strings{sz,'#'};as

c++ - 为什么不是 std::string::max_size() == std::string::allocator::max_size()

最近我注意到给定std::strings的情况下以下陈述不正确.s.max_size()==s.get_allocator().max_size();我发现这很有趣,默认情况下std::string将使用std::allocator其理论极限为size_type(-1)(是的,我知道我假设2的补码,但这与实际问题无关)。我知道实际限制会比这少得多。在典型的32位x86系统上,内核将占用2GB(可能是1GB)的地址空间,实际上限要小得多。无论如何,GNUlibstdc++的std::basic_string::max_size()似乎返回相同的值,不管它使用的分配器说什么(类似于1073

c++ - 'Natural Size' 在 C++ 中的真正含义是什么?

我知道“自然大小”是指特定硬件处理效率最高的整数宽度。在数组或算术运算中使用short时,必须先将short整数转换为int。问:究竟什么决定了这个“自然大小”?我不是在寻找简单的答案,例如Ifithasa32-bitarchitecture,it'snaturalsizeis32-bit我想了解为什么这是最有效的,以及为什么一个短必须在对其进行算术运算之前进行转换。奖励问题:对long整数进行算术运算时会发生什么情况? 最佳答案 一般来说,每个计算机体系结构的设计都使得特定类型大小提供最有效的数字运算。具体大小则取决于体系结构,编

c# - 什么等于 c# 中的 c++ size_t

我在C++中有一个结构:structsome_struct{uchar*data;size_tsize;}我想在manged(c#)和native(c++)之间传递它。C#中的size_t是什么?附言我需要大小完全匹配,因为任何字节差异都会在包装时导致巨大的问题编辑:原生代码和托管代码都在我的完全控制之下(我可以随意编辑) 最佳答案 没有与size_t等效的C#。C#sizeof()operator无论平台如何,总是返回一个int值,因此从技术上讲,size_t的C#等价物是int,但这对您没有帮助。(注意Marshal.SizeO

c++ - i + 1 < vec.size() 和 i < vec.size() - 1 之间的区别

在编程时我发现我的代码在使用条件i时出现运行时错误但对i+1工作正常.这里vec是一个空的std::vector.//givingerrorvectorvec;for(inti=0;ivec;for(inti=0;i+1 最佳答案 std::vector::size方法返回一个未签名的std::size_t。因此,如果它为空,您将得到0-1,但表示为无符号数,根据two'scomplement,它将下溢并变为18446744073709551615. 关于c++-i+1 h

c++ - std::array::max_size 和 std::array::size 给出不同结果的示例

每当我尝试使用std::array的max_size()和size()函数时,我都会得到相同的结果,我想知道是否会出现其中两个给出不同结果的情况。 最佳答案 该函数的存在是为了与std::vector等其他容器兼容。对于std::array,这两个值将始终相同。 关于c++-std::array::max_size和std::array::size给出不同结果的示例,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

C++:是否有任何理由使用 uint64_t 而不是 size_t

我对size_t的理解是它足够大以容纳您可能期望它需要容纳的任何(整数)值。(也许这是一个糟糕的解释?)例如,如果您使用for循环之类的东西来遍历vector中的所有元素,size_t通常为64位长(或至少在我的系统上),以便它可以保存vector.size()的所有可能返回值。或者至少,我认为这是正确的?因此,是否有任何理由使用A而不是B:答:for(uint64_ti=0;i乙:for(size_ti=0;i如果我的解释有误或者您有更好的解释,请随时修改。编辑:我应该补充一点,我的理解是size_t表现得像一个普通的无符号整数-也许这是不正确的? 最佳答

ios - react native AlertIOS 错误 : tried to display alert view but there is no application window

我正在尝试使用AlertIOS显示一条消息,但出现以下错误。警告框的代码嵌套在View和可触摸的突出显示下方。如果AlertIOS组件嵌套在其他组件中,调用它是否会出现问题?varTabOption=React.createClass({deleteConnection:function(){AlertIOS.alert('ConnectionRemoved','Wearenolongerhelpingyouonthisaccount',[{text:'?'}]);});render:function(){return(Disconnect}});varstyles=StyleShee

ios - Xcode 应用程序在 Application Loader 中上传成功但在 Build 中未看到

我正在尝试上传我的应用程序。我使用ApplicationLoader并在其中取得了成功。但是如果我返回到iTunes连接并刷新页面,Build是空的。怎么了?在过去的6个小时里,我一直坚持这个问题!!!构建图像: 最佳答案 这有两种可能性:您正在使用过时的Xcode上传。试试最新的,因为苹果在推出新的xcode版本后不再支持旧的xcode。您在plist中的权限不可用,例如您可能正在使用相机功能、照片功能、位置功能,但plist中未提供权限,因此请为plist中的权限添加key。解决此问题的最佳方法是检查使用Apple开发者帐户注册