【发布时间】:2012-10-07 20:11:05
【问题描述】:
可能重复:
Correct way to use scanf / printf (and family) with fixed size types?
我在 Visual Studio 中编写了以下程序:
运行程序并退出时,我收到错误消息“变量 b 周围的堆栈已损坏”。如果我将 _int 16 替换为 int,则不会引发异常。请问我该如何解决这个问题?我必须使用 _int16 因为我想模拟整数溢出。谢谢:)
【问题讨论】:
-
您对
scanf的使用假定一个全字整数而不是16 位整数。尝试"%hd"作为manual 的模式 -
谢谢 :) 请问我应该用什么代替?我对 C 有点陌生。
-
阅读 scanf 手册页,查找“short int”。
-
1) main() 应该返回 int 2) _int16 是什么(保留带有前导下划线的标识符) 3) 如果 _int16 是 16 位类型,则使用“%hd”格式。 4)您正在使用 printf() 而不是 #include
-
@Kiril 跨平台,您将使用
int16_t和SCNd16frominttypes.h
标签: c exception stack int addition