繁体   English   中英

strtoull基于输入字符串

[英]strtoull based on the input string

我有一个名为romflasher的工具,它带有两个字符串命令行参数--s-addr0--e-addr0

romflasher --s-addr0 0x1c40000 --e-addr0 0x1e40000

在我的程序romflasher.c

 char s_addr_0[256];
 char e_addr_0[256];

 uint32_t start_addr = strtoull(s_addr_0,(char**)NULL,16);
 uint32_t end_addr   = strtoull(e_addr_0,(char**)NULL,16);

只要用户将地址指定为十六进制,这就可以正常工作。我想给用户提供以十进制和十六进制指定它的选项。是否有一个函数可以根据'0x'的存在进行相应的字符串转换'0x'前缀到正确的基数?

如果传递0作为base参数,则strtoull识别0x0前缀以指示十六进制和八进制,否则默认为十进制。

为什么不写一个包装器函数到strtoull(mystrtoull)并检测字符串中的0x并相应地将base参数传递给strtoull?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM