[過去ログ] 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
12: デフォルトの名無しさん [sage] 2017/11/07(火) 04:37:45 ID:T7zw8VZw(1/3) AAS
>>99(1): デフォルトの名無しさん [sage] 2017/11/06(月) 09:40:14 ID:L15YU14L(1) AAS
if (strncmp(psz, "12 34 56", 8) == 0) return 123456;
は質問者に対する皮肉のつもりだったんだけど
13: デフォルトの名無しさん [sage] 2017/11/07(火) 04:47:47 ID:T7zw8VZw(2/3) AAS
意図的に糞コードを書いた事もわからないクソがいるとは
こんな簡単なコードの動作も理解できてないようだし
18(1): デフォルトの名無しさん [sage] 2017/11/07(火) 08:32:51 ID:T7zw8VZw(3/3) AAS
>>33(3): デフォルトの名無しさん [sage] 2017/11/05(日) 20:58:13 ID:80sy7ZoV(1) AAS
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;
}
●パフォーマンス
*pszが3回も出てくる
代入して持っておいた方が
チープなコンパイラでは速度が変わる
isdigit
どうせ数字が連続してる前提のコードなんだから
関数を呼ばずに'0' '9'と比較しちゃおう
そうのが速い
関数コールは一般的に遅い
●見やすさ
forループにいくつも入れない
while (n--) か for (size_t i= 0; i < n ; i++)
null文字はbreakで
●仕様
null文字とサイズ、両方で停止は仕様としては問題ない
パフォーマンス最優先であればそれぞれの特別版を作ればいい
文字数もスペースの位置も固定で
パフォーマンス最優先なら
ループアンロールするのが一番
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.037s