[過去ログ]
【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (1002レス)
【初心者歓迎】C/C++室 Ver.102【環境依存OK】 http://mevius.5ch.net/test/read.cgi/tech/1509780815/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
3: デフォルトの名無しさん [sage] 2017/11/05(日) 20:58:13 ID:80sy7ZoV unsigned long strtoulxn( char const* psz, size_t n ) { unsigned long v; for ( v = 0; *psz && n--; psz++ ) { if ( ! isdigit( *psz ) ) { continue; } v = 10 * v + ( *psz - '0' ); } return v; } http://mevius.5ch.net/test/read.cgi/tech/1509780815/3
7: デフォルトの名無しさん [sage] 2017/11/06(月) 08:01:53 ID:uTTN+kxR >>3 の関数は前のスレッドの終わりに出た "12 34 56"(NUL終端なし8byte) を数値の 123456 に変換、 てお題の答案かな。 …と思ったけど、NUL終端文字列が仮定されてるね。 どういう流れで投稿されたんだろう? http://mevius.5ch.net/test/read.cgi/tech/1509780815/7
14: デフォルトの名無しさん [sage] 2017/11/07(火) 06:16:53 ID:pkgJL5Ib 初心者歓迎をうたうスレッドで「意図的に『糞コード』を書いた」などと しかも後付けで言われてもあんまり支持できないなぁ。 せめて最初から「お前らこれ改善してみろよ」とかで出してくれ。 「糞コード」とけなすだけで、具体的な問題点の指摘がないってのも寂しいわ。 >>3 のソース、引数のpszが""でも、nが0でも妥当な返り値 0 が返るけど、 実は最初に見たとき n==0 で呼ばれた場合に即時終了しないと騙されたわ。 後置デクリメント評価値、ね。 http://mevius.5ch.net/test/read.cgi/tech/1509780815/14
18: デフォルトの名無しさん [sage] 2017/11/07(火) 08:32:51 ID:T7zw8VZw >>3 ●パフォーマンス *pszが3回も出てくる 代入して持っておいた方が チープなコンパイラでは速度が変わる isdigit どうせ数字が連続してる前提のコードなんだから 関数を呼ばずに'0' '9'と比較しちゃおう そうのが速い 関数コールは一般的に遅い ●見やすさ forループにいくつも入れない while (n--) か for (size_t i= 0; i < n ; i++) null文字はbreakで ●仕様 null文字とサイズ、両方で停止は仕様としては問題ない パフォーマンス最優先であればそれぞれの特別版を作ればいい 文字数もスペースの位置も固定で パフォーマンス最優先なら ループアンロールするのが一番 http://mevius.5ch.net/test/read.cgi/tech/1509780815/18
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.049s