簡體   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