我正在寻求一些帮助来理解为什么我会获得价值。我有一个非常基本的菜单可以在 KL25Z 微控制器(32 位架构)上选择和设置值。我有一个不会打印高于 255 的值的 int。我做错了什么?
信标.h
typedef struct _payload_t {
int t1_range;
} PAYLOAD_T;
信标.c
#define BUFFSIZE 100
PAYLOAD_T payload;
int main (int argc, char *argv[])
{
char line[2];
int ret, select;
// print menu
print_menu();
// get menu input
ret = readline(line, BUFFSIZE, stdin, stdout);
select = atoi(line);
switch(select)
{
case 1:
uprintf(" Target 1 Starting Range: ");
ret = readline(line, BUFFSIZE, stdin, stdout); //--> 257
payload.t1_range = atoi(line);
printf(" Selection = %s\r\n", line); //--> 257
printf("(%d)\r\n",payload.t1_range); //--> 1
break;
... rest of case
}
return 0;
} //end main
在输入高于 255 的值之前一切正常,然后显示的值似乎恢复为 1。如果 payload.t1_range 是一个 int(16 位),为什么它的行为就像一个 8 位?
任何帮助或方向将不胜感激。
谢谢!