X



このプログラムできまっか?
0001仕様書無しさん
垢版 |
2021/07/10(土) 00:06:32.93
C言語
0010仕様書無しさん
垢版 |
2021/08/04(水) 17:26:05.71
せめてwandboxのpermalink貼ってくれ悟空ー!!
0012仕様書無しさん
垢版 |
2021/08/04(水) 19:15:13.11
>>11
何が勿体ないだよ?
まだ8bitCPU使ってるのか?
0013仕様書無しさん
垢版 |
2021/08/04(水) 21:38:00.25
配列の定義は100バイト
つまり添字は100以上は使わない
charで十分
0014仕様書無しさん
垢版 |
2021/08/04(水) 23:22:04.33
仕事でそんな厨房のような設計する奴が来たら直ぐチェンジだわ

8bit 環境じゃ無いなら int をケチって char にしてもリソースの節約にもパフォーマンスの高速化にもならんし
100文字までの仕様がちょっと増えただけでインデックスが折り返してしまう潜在不具合を仕込むし

メンテナンス性を全く考えずに無意味な最適化で喜んでる
0015仕様書無しさん
垢版 |
2021/08/05(木) 04:06:04.31
バウンダリでアライメントがいくつつこうが
cの言語仕様としてのcharは1バイト
intをcharにすることで省力化に成功している

また、for(b--;b>=0;b--)で
\0を出力しないようさりげなく考慮している部分も良いと思う

>>6は無駄を排除した洗練されたコードと言えよう
0016仕様書無しさん
垢版 |
2021/08/06(金) 18:46:40.05
コンパイラが最適化するようなところに可読性落としてまで中途半端な最適化入れるやつ困るわ

若い頃の自分がそうだったが
0017仕様書無しさん
垢版 |
2021/08/06(金) 19:14:25.83
別にチューニングするのはかまわんと思うが
環境依存になってしまっているコードでドヤ顔されても
「それはあなたの環境ですよね」としか言いようがない
0018仕様書無しさん
垢版 |
2021/08/06(金) 20:33:08.74
すげえオナニーコードだな。
forの初期化式にデクリメントなんかあったら普通に「は?」だわ。
そりゃ数秒で動くのはすぐわかるけど、この程度の内容で可読性無視して変数ケチるくらいパフォーマンス気にするか?
まあ間違いなく大規模開発したことない素人だな。
リーダブルコードおかずにセンズリこいてろ。
0019仕様書無しさん
垢版 |
2021/08/06(金) 21:48:40.99
char moji[100];
int b;

scanf("%s%n",moji,&b);
while(b>-1){
printf("%c",*(moji+b));
b--;
}
0020仕様書無しさん
垢版 |
2021/08/06(金) 21:59:58.54
char moji[100];
int b;

scanf("%s%n",moji,&b);
while(printf("%c",*(moji+(b--))) && b >-1);
0022仕様書無しさん
垢版 |
2021/08/07(土) 00:43:05.85
配列をポインタであると見抜ける人でないと難しい
0025仕様書無しさん
垢版 |
2021/08/07(土) 23:25:24.78
>>23を知らないなんてもぐりだろ
0026仕様書無しさん
垢版 |
2021/08/08(日) 00:32:23.24
配列とポインタは別の概念
実装レベルで同じだからといってシンタックスシュガーなんて言い出すのは正しくない
0027仕様書無しさん
垢版 |
2021/08/08(日) 11:37:46.89
>>17がひろゆきの名言のパロディを書いたから、
>>22もひろゆきをパロったんだよ

「それはあなたの環境ですよね」
  ↓
「それはあなたの感想ですよね」


「配列をポインタであると〜」
  ↓
「ウソをウソであると〜」
0028仕様書無しさん
垢版 |
2021/08/08(日) 12:27:03.58
そもそも容量を節約したいなら他に方法あるでしょ
0031仕様書無しさん
垢版 |
2021/08/08(日) 18:43:42.34
ビットフィールドとか懐かしいな
しばらく使ってない
0033仕様書無しさん
垢版 |
2021/08/08(日) 23:43:33.76
そもそもintは何bitかの保証がない
仮にintが4bitであるならば、charにすると2倍になってしまう
0034仕様書無しさん
垢版 |
2021/08/09(月) 08:15:44.92
>>31
どこにビットフィールドがでてくるんだよ

>>32
ビット演算なんて使う局面ないだろ
0035仕様書無しさん
垢版 |
2021/08/09(月) 13:57:51.82
>>1の仕様によると使用する値は0〜100。つまり101〜255までは空いてるんだよ
まだまだ詰められるじゃないか
0036仕様書無しさん
垢版 |
2021/08/09(月) 14:03:24.58
>>35
どうやって詰めるの?
メモリってバイト単位でとられるんじゃないの?
0037仕様書無しさん
垢版 |
2021/08/10(火) 00:37:13.33
大学の課題だか研修の課題だか知らんけどこんなんにパフォーマンス求める前にまず誰か動くコード出してみろよ
https://wandbox.org/
0039仕様書無しさん
垢版 |
2021/08/10(火) 13:58:31.52
やりなおし

intはつかうな
shortかlongをつかえ
0041仕様書無しさん
垢版 |
2021/08/10(火) 16:12:25.47
クーラー涼しい
0043仕様書無しさん
垢版 |
2021/08/11(水) 13:25:23.59
>>11
> 配列の添字にintは勿体ない
> charで十分

まじワロタw
組込みやってんのかな?笑
0044仕様書無しさん
垢版 |
2021/08/11(水) 13:42:59.46
>>39
short, int, longのどれを使っても処理系の特性に依存する点で同罪だよ
添え字はsize_tなんてぬかすやつがいるが、これもおかしい
配列の先頭と末尾のポインタを算術減算して導かれる型はptrdiff_tだ
0047仕様書無しさん
垢版 |
2021/08/12(木) 06:24:25.50
いやーしかし、このスレって scanf() で %s 使う人結構居るのかな?もしやここ初心者だらけ?
プログラムに関する質問ならプログラマー板ではなくプログラム板に行った方が良いと思うぞ。
0048仕様書無しさん
垢版 |
2021/08/12(木) 09:02:09.06
>>47
プロの本気見せてやれよ
0049仕様書無しさん
垢版 |
2021/08/12(木) 12:29:32.89
そもそも scanf 使うのが間違い
0051仕様書無しさん
垢版 |
2021/08/12(木) 12:47:40.72
scanf 使ってるプロなんて見たことない
0052仕様書無しさん
垢版 |
2021/08/12(木) 14:41:58.93
それ昔から言われているけど
じゃあ代わりに何を使うの?
0054仕様書無しさん
垢版 |
2021/08/12(木) 17:43:09.84
>>48
本気ってほどではないがとりあえず何も考えずに無念無想で書いたのが>>46
0055仕様書無しさん
垢版 |
2021/08/12(木) 18:10:26.52
>>50
俺はsscanf()も文字列一つ切り出すだけなら使わないな。strchr()とかで自分で抜き出す範囲探してstrncpy()とか使っちゃう。
もっとこう、1行に複数の値が並んでいてsscanf()使って値を抜き出した方が効率良さそうとか見易くなりそうと思えるような時に使う。

しかし、そんなテキスト処理は sed, awk, perl 等のテキスト処理について細かく考える必要のない言語使ってしまう事の方が多いな。
0056仕様書無しさん
垢版 |
2021/08/12(木) 18:14:09.30
scanfなんて競プロでしか使わないでしょ
プログラムで使ってる奴いたらやばい人
0057仕様書無しさん
垢版 |
2021/08/12(木) 18:59:54.48
客先提供や長期に渡ってつかうアプリでscanfは使ったらいけないだろうけど、
一時的な動作確認や、机上テスト用ソースにまで使うなってのは度が過ぎると思う。
レスを投稿する


ニューススポーツなんでも実況