X



C言語なら俺に聞け 149
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん (ワッチョイ af9f-7TBo)
垢版 |
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT0
!extend:checked:vvvvv:1000:512

次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。

C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
0856デフォルトの名無しさん (ワッチョイ f9ff-VK1S)
垢版 |
2019/01/15(火) 11:19:45.08ID:O800IQzp0
>>855
ほほう それでそれで?
      ____
     /:::::::ヽ
    f::/" ̄ ̄ヾi
    |:リ _ _|
    |r==( o)( o)
    ( ヽ  _) i
  __/ヽ ー== イ
 /ヽ ヽ \__ノ
`/ i  \_/、
/ r-、    ハ
レ⌒ヾi /  / |
i   ̄`ー―-ヘ |
ヽ_____ノーイ
| \    ノ
    ̄ ̄ ̄ ̄
0860デフォルトの名無しさん (アークセー Sx85-rXi3)
垢版 |
2019/01/15(火) 12:46:21.45ID:biAsBETNx
なんだ、やっぱりその状態があるって認めてるじゃん。正孔(という状態)は存在する、と。
てか誰も「正孔というモノ」の話なんかしてなくて一人だけ勘違いしてるw
0863デフォルトの名無しさん (アウアウウー Sa89-JzEj)
垢版 |
2019/01/15(火) 12:59:28.21ID:uoTEW6ZSa
ところで何の話をしているのかね?
0869デフォルトの名無しさん (アウアウウー Sa89-JzEj)
垢版 |
2019/01/15(火) 20:58:52.03ID:uoTEW6ZSa
昭和は遠くなりにけり
0871 ◆QZaw55cn4c (JP 0H62-jEXV)
垢版 |
2019/01/15(火) 22:02:49.14ID:niK8DUcQH
>>866
猫にねずみが噛み付いた
あべこべだ猫たたき
ねずみっていきものさ!
猫だっていきものさ!
0872デフォルトの名無しさん (ワッチョイ ce02-H432)
垢版 |
2019/01/16(水) 17:45:04.86ID:ECRqnYoc0
そういやトムジェリって一作目が作られたのが1940年なのな。戦前だ。
それで延々と続いて2017年にもOVAのDVDが出ている。恐ろしく長寿だ。
まあディズニー関係が一番長寿なんだろうけどね。
0875デフォルトの名無しさん (ワッチョイ c101-DeFq)
垢版 |
2019/01/17(木) 23:04:44.74ID:KvO4PGbE0
フラッグの状態によって引数を変更する必要があるのですが
どのやり方がベストでしょうか?

//A:冗長だけど単純で解りやすいと思う
if ( flag )
{
func(PARAM1, PARAM2, 1, "hoge1", 2, "hoge2", 3, "hoge3");
}
else
{
func(PARAM1, PARAM2, 2, "hoge2", 3, "hoge3", 1, "hoge1");
}

//B:いったん変数に入れてから function call
if ( flag )
{
n[0] = 1; n[1] = 2; n[2] = 3;
str[0] = "hoge1"; str[1] = "hoge2"; str[2] = "hoge3";
}
else
{
n[0] = 2; n[1] = 3; n[2] = 1;
str[0] = "hoge2"; str[1] = "hoge3"; str[2] = "hoge1";
}
func(PARAM1, PARAM2, n[0], str[0], n[1], str[1], n[2], str[2]);
0876デフォルトの名無しさん (ワッチョイ c101-DeFq)
垢版 |
2019/01/17(木) 23:05:39.65ID:KvO4PGbE0
//続き
//C:テーブルその1
const int table[2][3] = {{1,2,3},{2,3,1},};
const char *stbl[2][3] = {{"hoge1","hoge2","hoge3"},{"hoge2","hoge3","hoge1"}};
i = flag ? 0: 1;
func(PARAM1, PARAM2, table[i][0], stbl[i][0],table[i][1], stbl[i][1],table[i][2], stbl[i][2]);

//D:テーブルその2 順番が違うだけの場合だったらこれでもいける
const int table[3] = {1,2,3};
const char *stbl[3] = {"hoge1","hoge2","hoge3"};
int order[2][3] = {{0,1,2},{1,2,0}};
i = flag ? 0: 1;
func(PARAM1, PARAM2, table[order[i][0]], stbl[order[i][0]],table[order[i][1]], stbl[order[i][1]],table[order[i][2]], stbl[order[i][2]]);

//E:三項演算子 これは無駄に比較が多くなるから無しかも
func(PARAM1, PARAM2, flag?1:2, flag?"hoge1":"hoge2",flag?2:3, flag?"hoge2":"hoge3",flag?3:1, flag?"hoge3":"hoge1");
0879デフォルトの名無しさん (ワッチョイ c101-DeFq)
垢版 |
2019/01/18(金) 00:39:40.92ID:2Bf08m/t0
個人的にはAが好きだけど
こういうの馬鹿にする人いそうなのが困る
0883デフォルトの名無しさん (ワッチョイ 117b-g8bx)
垢版 |
2019/01/18(金) 05:44:13.01ID:APqq2jRu0
この範囲だけで言えば A が見通しが良くて分かりやすいんじゃないかな。

1, 2, 3 の並び方が(順列で)6通り存在するとか、
1 と "hoge1"... だけでなく、1 と "hoge2" の組み合わせも発生しうるとか、
func()の呼び出しパターンがもっと複雑だったら、
「flagの値に応じて適切な引数でfunc()を呼び出す関数」を作ると思う。
call_func(int flag, [func()に渡す引数]); みたいな感じ。

[func()に渡す引数] の部分を、カンマで区切った引数群にするか、
構造体にまとめるかは、別の要素が絡むので、強く主張できない。
0885デフォルトの名無しさん (アウアウウー Sa15-4KIe)
垢版 |
2019/01/18(金) 15:49:59.44ID:dETdnGdxa
>>875
その flag が 0 か 0 以外の値にしかならず 1 や 2 で違う動作になる事は未来永劫ない場合と、将来的になる可能性がある場合とでやり方は変えるかも知れない。

でも最初のやり方で良いんじゃないかな。あまり捻ると分かりづらくなるし。
flagの値によって何十通りもの違う呼び出しになるとかいうなら色々考えた方が後々良いのかも知れないが。
0887デフォルトの名無しさん (ワッチョイ 2100-b/bA)
垢版 |
2019/01/22(火) 14:42:25.83ID:Um5Ij+zI0
突然のステマ(OSSについてだけど)
LuaTeXっていうTeXのLua拡張?(よく分からん)に付いてくる
pplibっていうPDFライブラリおすすめ。
ドキュメント↓
https://serveur-svn.lri.fr/svn/modhel/luatex/trunk/source/texk/web2c/luatexdir/luapplib/html/ppapi.html#c-api
C向けのAPIでかなり最近に開発されたおかげか挙動が素直
0892デフォルトの名無しさん (ワッチョイ 117b-g8bx)
垢版 |
2019/01/22(火) 15:47:59.14ID:rPWXpeN+0
こちらも Subversion の公開レポジトリでは anonsvn が一般的と知らなかった。

案内ページも表示されないんで完全会員制の秘密クラブの扉でも
ウッカリ開いてしまったのかと、少々慌ててしまった部分もある。
0893デフォルトの名無しさん (アウアウウー Sa15-4KIe)
垢版 |
2019/01/22(火) 16:00:45.48ID:J1mDHp9Ya
バカには見えないプログラムでございます。
0897デフォルトの名無しさん (ワッチョイ 3152-FxQn)
垢版 |
2019/01/30(水) 20:09:31.10ID:5GzTmkIQ0
は?
0900デフォルトの名無しさん (ワッチョイ 4900-MosH)
垢版 |
2019/01/30(水) 21:25:54.58ID:yhwdEVRM0
あ,なんかしょーもないレスの仕様だけ書き込むのもアレだから
ちょっとしたことだけど……
C99の仕様だとfor文の条件の中で新しい変数が宣言できるけど
(新規のプロジェクトでは)積極的に使っていいと思う?
for (int8_t __cnt_foo; __cnt_foo < 42; __cnt_foo++) {
...
}
↑こういうの。
0902デフォルトの名無しさん (ワッチョイ 06ad-5jav)
垢版 |
2019/01/30(水) 21:35:32.25ID:lQux7EEV0
LINEの入社試験でC選んだけど
forの中などで宣言できる仕様になってた
cppやjavaでも使えるし使っていってええんじゃ

それにi,j,kってどうでもええ変数やから頭でも書く必要もないような
0903デフォルトの名無しさん (ワッチョイ 3152-FxQn)
垢版 |
2019/01/30(水) 21:43:46.06ID:5GzTmkIQ0
反復文のブロック外で使わない変数を、反復文の外で宣言しなければならない今までの仕様がむしろおかしい。
あと中で宣言すれば変数名ijklmn,,,なんて自体も避けれる。多重ループでなければ。
0904デフォルトの名無しさん (ワッチョイ 417b-/DDN)
垢版 |
2019/01/30(水) 21:53:53.32ID:fRt/VtGE0
for での変数宣言は // の単一行コメントと同じ程度には使うかな。

むしろ変数名が __cnt_foo なのが気になる。2つの下線で始まってる部分。

__cnt_foo を宣言だけして、初期化してないのも怖いなぁ。
でも、今お手元のgccで試したところ、エラーも警告も出ないんだね。


あと、これは投稿番号904になるつもりだが、実際どうかな?
0905デフォルトの名無しさん (ワッチョイ 4900-MosH)
垢版 |
2019/01/30(水) 22:37:01.37ID:yhwdEVRM0
>>904
ブラウザで見てるが,レス番号は904だ。
あと初期化は単に書き忘れただけw

「2つの下線で始まる函数や変数は局所使用」
って結構いろんなプロジェクトで(OSSでもたまに)
みかけるんだけど,変かしら。
0908デフォルトの名無しさん (ワッチョイ ff33-vS77)
垢版 |
2019/01/31(木) 04:33:42.98ID:9oWu7LhB0
>>905
うん、変だ
下線2つで始めるのは衝突を最高レベルに警戒する場合の不自然なスタイルで
たいていはスコープが効かないマクロやビルトインで何かするときだ

何の変哲もない局所変数でそんなことするのはひねくれ者だ
0921デフォルトの名無しさん (ワッチョイ ff02-lvwX)
垢版 |
2019/02/03(日) 17:56:15.17ID:DVXBklBr0
>>919
昔そんな言語なかったっけ?言語と言うよりはそういう特殊仕様が実装された実行環境かな。なんとなくBASICとかであったような気がするんだが。
(もしかすると40年ぐらい前のマイコン用に作られた言語かも知れない。こういうのはバイト数減らすのに都合が良いから)
0930デフォルトの名無しさん (ワッチョイ ff02-lvwX)
垢版 |
2019/02/03(日) 19:22:06.40ID:DVXBklBr0
>>925>>927
あ、そうか。そういやそうだったね。すっかり忘れてた。
0936デフォルトの名無しさん (アメ MM03-5/sk)
垢版 |
2019/02/03(日) 20:59:31.07ID:DdA3Wm74M
>>935
>>929は変数使わない言語って言ってるんで。
forthに変数が無いとは言ってないよ。
でもちょっとしたことなら全部スタックで済ましちゃうでしょ?そういう言語だし。
0943919 (ワッチョイ df7b-Z3mi)
垢版 |
2019/02/04(月) 08:07:42.85ID:01AVniBC0
>>920 (== 942) こういうネタを投稿するときは
どのくらいボカすか、ってさじ加減が難しいんだよ。

あからさま過ぎれば、知識の豊富な人には物足りないし、
おとなし過ぎると、何の話かサッパリ分からんって人が多くなる。
今回は間口を広げる方針、分かりやすさ優先だったと解釈してくれ。
レス数が950を超えています。1000を超えると書き込みができなくなります。

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