3

--s-addr0 2 つの文字列コマンドライン パラメータを使用する romflasher というツールがあります。--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);

ユーザーがアドレスを 16 進数で指定している限り、これは正常に機能します。10 進数と 16 進数の両方で指定するオプションをユーザーに提供したいと考えています。'0x'プレフィックスの存在に基づいて適切な文字列変換を行う関数はありますか?正しいベースに?

4

2 に答える 2

3

base引数として 0 を渡すと、16 進数と 8 進数をそれぞれ示すと のプレフィックスがstrtoull認識され、それ以外の場合はデフォルトで 10 進数になります。0x0

于 2013-04-04T03:57:00.277 に答える