C言語なら俺に聞け 149
レス数が950を超えています。1000を超えると書き込みができなくなります。
>>850
ならない
おまえ個人のオレ様ルールで否定ということにしたいだけだ >>849
「あるはずの電子が無い状態」のことを性行っていうんよ 846みたいに陽電子と勘違するやつがいるから指摘しといたんだ 誤「あるはずの電子がない」
正「電子がある方が結合が安定する(けど陽子数と合わない)」 >>855
ほほう それでそれで?
____
/:::::::ヽ
f::/" ̄ ̄ヾi
|:リ _ _|
|r==( o)( o)
( ヽ _) i
__/ヽ ー== イ
/ヽ ヽ \__ノ
`/ i \_/、
/ r-、 ハ
レ⌒ヾi / / |
i  ̄`ー―-ヘ |
ヽ_____ノーイ
| \ ノ
 ̄ ̄ ̄ ̄ ホールはあるぞ。
電子も実はないんだとか言うならまだわかるが。 なんだ、やっぱりその状態があるって認めてるじゃん。正孔(という状態)は存在する、と。
てか誰も「正孔というモノ」の話なんかしてなくて一人だけ勘違いしてるw >>860
絡んできたくせに結局849の日本語が通じてないだけかよ
相手して損した トムとジェリー 仲良くけんかしな
トムトムトムにゃーご
ジェリージェリージェリーちゅう >>865
もうこの話題も飽きたので相手しないだけ。 >>866
猫にねずみが噛み付いた
あべこべだ猫たたき
ねずみっていきものさ!
猫だっていきものさ! そういやトムジェリって一作目が作られたのが1940年なのな。戦前だ。
それで延々と続いて2017年にもOVAのDVDが出ている。恐ろしく長寿だ。
まあディズニー関係が一番長寿なんだろうけどね。 スーパーマンの1941年のアニメなんてすごいレベル高いよ フラッグの状態によって引数を変更する必要があるのですが
どのやり方がベストでしょうか?
//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]); //続き
//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"); 個人的にはAが好きだけど
こういうの馬鹿にする人いそうなのが困る この範囲だけで言えば A が見通しが良くて分かりやすいんじゃないかな。
1, 2, 3 の並び方が(順列で)6通り存在するとか、
1 と "hoge1"... だけでなく、1 と "hoge2" の組み合わせも発生しうるとか、
func()の呼び出しパターンがもっと複雑だったら、
「flagの値に応じて適切な引数でfunc()を呼び出す関数」を作ると思う。
call_func(int flag, [func()に渡す引数]); みたいな感じ。
[func()に渡す引数] の部分を、カンマで区切った引数群にするか、
構造体にまとめるかは、別の要素が絡むので、強く主張できない。 俺なら次のようにする。
void *a[]={1,&"hoge1",2,&"hoge2",3,&"hoge3",2,&"hoge2",3,&"hoge3",1,&"hoge1"};
func(flag?a:a+6); >>875
その flag が 0 か 0 以外の値にしかならず 1 や 2 で違う動作になる事は未来永劫ない場合と、将来的になる可能性がある場合とでやり方は変えるかも知れない。
でも最初のやり方で良いんじゃないかな。あまり捻ると分かりづらくなるし。
flagの値によって何十通りもの違う呼び出しになるとかいうなら色々考えた方が後々良いのかも知れないが。 flagに1も2もあるかよ
Win32のGetMessageみたいなアホなケースはあるが 突然のステマ(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でかなり最近に開発されたおかげか挙動が素直 Username for Subversion luatex repository
とか入力を求められるけど、何やら登録が必要? >>889
ユーザー名: anonsvn
パスワード: anonsvn ていうかごめん。普通に匿名SVNであることを書き忘れてたわw こちらも Subversion の公開レポジトリでは anonsvn が一般的と知らなかった。
案内ページも表示されないんで完全会員制の秘密クラブの扉でも
ウッカリ開いてしまったのかと、少々慌ててしまった部分もある。 確かにAPIはスッキリしてるけど機能が少なすぎるね>>887
Poppler使うわ。 >>897
この板をPCのクロームで見てみて
レス数が903なのに、メイトでは897なんよね >>898
なんかNGしてるワッチョイでもあるんでは? あ,なんかしょーもないレスの仕様だけ書き込むのもアレだから
ちょっとしたことだけど……
C99の仕様だとfor文の条件の中で新しい変数が宣言できるけど
(新規のプロジェクトでは)積極的に使っていいと思う?
for (int8_t __cnt_foo; __cnt_foo < 42; __cnt_foo++) {
...
}
↑こういうの。 >>898
2cH.scか2ch.Netみてるんでしょ LINEの入社試験でC選んだけど
forの中などで宣言できる仕様になってた
cppやjavaでも使えるし使っていってええんじゃ
それにi,j,kってどうでもええ変数やから頭でも書く必要もないような 反復文のブロック外で使わない変数を、反復文の外で宣言しなければならない今までの仕様がむしろおかしい。
あと中で宣言すれば変数名ijklmn,,,なんて自体も避けれる。多重ループでなければ。 for での変数宣言は // の単一行コメントと同じ程度には使うかな。
むしろ変数名が __cnt_foo なのが気になる。2つの下線で始まってる部分。
__cnt_foo を宣言だけして、初期化してないのも怖いなぁ。
でも、今お手元のgccで試したところ、エラーも警告も出ないんだね。
あと、これは投稿番号904になるつもりだが、実際どうかな? >>904
ブラウザで見てるが,レス番号は904だ。
あと初期化は単に書き忘れただけw
「2つの下線で始まる函数や変数は局所使用」
って結構いろんなプロジェクトで(OSSでもたまに)
みかけるんだけど,変かしら。 >>905
処理系で予約されてるんじゃなかったかな >>905
_で始まる変数やマクロは原則予約語で使う表記になるから控えた方が良いって話だったような >>905
うん、変だ
下線2つで始めるのは衝突を最高レベルに警戒する場合の不自然なスタイルで
たいていはスコープが効かないマクロやビルトインで何かするときだ
何の変哲もない局所変数でそんなことするのはひねくれ者だ 素直にこう書けばいいんだよ
for (int i = 0; i < 42; i++) { 衝突を避けている識別子たちを、わざわざ追いかけていく、当たり屋みたいな奇行はよせ >>905
それはコンパイラやライブラリのソースコードだったか目が霞んでたんじゃないか?
アンダースコア2つはどんな場所でも予約されている わたしがスペシャル変数と呼んでる一連のアンダーバー付きの変数はプログラミング業界で取り返しのつかないほど広まってる 世界統一変数名が必要なんだよね。でもあそこと、あそそこが悪さする。 スーパーグローバル変数「___________________GET!!!!!」 じゃぁ、変数名が I 〜 N で始まる場合は自動的に整数変数と見て、
宣言せずに使えるようにしよう。 >>919
昔そんな言語なかったっけ?言語と言うよりはそういう特殊仕様が実装された実行環境かな。なんとなくBASICとかであったような気がするんだが。
(もしかすると40年ぐらい前のマイコン用に作られた言語かも知れない。こういうのはバイト数減らすのに都合が良いから) 由緒正しきBASICはそもそも変数宣言なんていらん。 BasicだとDEFINTなんてあったな
宣言無しで型が決まるのはもう少し古い言語だな >>921
Fortran だね
Cが教育課程に採用される前の言語 I、J、Kをループ変数に使うというのは
その辺りからの伝統というかしきたりだったね ここの住民が言語作ったら良い言語できそうだな
あ、グローバル変数とvarとletは無しでお願いしますね >>925>>927
あ、そうか。そういやそうだったね。すっかり忘れてた。 >>932
スタックも広義の変数なような?
llvmでは一度代入した変数は書き換えない(全て準定数)って聞いたけど、ループ変数なんか値書き換えないとやってられないような? >>935
>>929は変数使わない言語って言ってるんで。
forthに変数が無いとは言ってないよ。
でもちょっとしたことなら全部スタックで済ましちゃうでしょ?そういう言語だし。 llvmにも書き換え可能なメモリを確保する命令はある。
それでループ変数を作っておいて、書き換え不可変数への置き換えは最適化におまかせする感じ。 最近
「私たちのアポロ計画」
という映画みたら、黒人のBBAがFortran使っててドヤ顔してたわw
Fortranごとき中高生でもできるのにね。 >>920 (== 942) こういうネタを投稿するときは
どのくらいボカすか、ってさじ加減が難しいんだよ。
あからさま過ぎれば、知識の豊富な人には物足りないし、
おとなし過ぎると、何の話かサッパリ分からんって人が多くなる。
今回は間口を広げる方針、分かりやすさ優先だったと解釈してくれ。 >>940
じゃあCは中高生には使えんとでも言いたいのか? おめでたいやつだな #include <stdio.h>
#include <stdlib.h>
FILE *fp;
int c;
void main() {
fp=fopen("HOGE.LOG", "w");
fputs("このプログラムは何かまずい?まずいとしたらどうなる?",fp);
exit(c);} 速報 ワイ どこに釣り針が仕掛けられているのか分からず 釣り針にかかってみる。
main引数のvoidを省略するのは非標準なのでダメって話じゃないのん? >>948
cが初期化されてないんでしょ(鼻ホジ) レス数が950を超えています。1000を超えると書き込みができなくなります。