[英]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
識別0x
和0
前綴以指示十六進制和八進制,否則默認為十進制。
為什么不寫一個包裝器函數到strtoull(mystrtoull)並檢測字符串中的0x並相應地將base參數傳遞給strtoull?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.