C言語なら俺に聞け! Part 76
■ このスレッドは過去ログ倉庫に格納されています
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンクは>>3-20あたり(誰か適当に貼って)
C言語なら俺俺に聞け! Part 75
http://pc5.2ch.net/test/read.cgi/tech/1079331297/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsoft C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGhttp://nssearch.hp.infoseek.co.jp/clang/
0005デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1080010285/
0006デフォルトの名無しさん
NGNG初心者には使う理由が見当たりません。
0007デフォルトの名無しさん
NGNG構造体を
struct MyStruct A,B;
とかでなく、
MyStruct A,B;
って感じで宣言できるようになることなど.
0009デフォルトの名無しさん
NGNGモツ
0010デフォルトの名無しさん
NGNG> C言語なら俺俺に聞け! Part 75
これはわざとか?ともあれ乙。
0011デフォルトの名無しさん
NGNGいやコピペして番号を修正しただけ。
気づかなかった・・・
0012デフォルトの名無しさん
NGNGただしい引数で関数を呼んでコンパイルエラーになったらたまらん。
0013デフォルトの名無しさん
NGNGなにがしたいのか良く分からんが。なんとなく sizeof(bar->hoge) と書いておく。
ちっとは進化しろ。
0014デフォルトの名無しさん
NGNG>はOKということですか?
Yes.
これはメモリに展開しているhogehogeの先頭アドレスからsizeof(*bar)バイトに'\0'が代入される
0015デフォルトの名無しさん
NGNGmemset(bar, '\0', sizeof(bar));
printf("bar->hogeの値は[%s]です。", bar->hoge); /* 初期化されてない */
>まず、以上のコードでは、Hoge型の変数hogeの内容は初期化されませんか?
されます。sizeof(Hoge *)分だけ。
>sizeof(Hoge)
>とすればよいのでしょうか?
よい。
sprintf(bar->hoge, "%d", i); /* コピーされない */
printf("bar->hogeの値は[%s]です。", bar->hoge);
>sprintfが反映されないのは何故でしょうか?
反映されるが何か?
0016デフォルトの名無しさん
NGNGすみませんが教えてください。
C++5.5のコンパイラでC言語を打ちコンパイルすることは
できますでしょうか?
0017デフォルトの名無しさん
NGNGC++5.5ってなに?BorlandC++と書かないとわからんぞ。
0018デフォルトの名無しさん
NGNGいっぱいありますよ。
C++をコンパイルできるくせに、Cの複合定数をエラーにしてしまったり、
拡張子を.cにしたとたん、関数の先頭以外のint i;をエラーにしてしまうような
コンパイラーは「Cをコンパイルできる」とはいわないでしょ。
> C++5.5ってなに?BorlandC++と書かないとわからんぞ。
5.5というえばBorandのより有名なやつがありますね。そっちのことでしょう。
0019デフォルトの名無しさん
NGNGコンパイラーでは打つことはできませんね。
それに打つのは「C言語」ではないでしょう。
0020デフォルトの名無しさん
NGNG> 拡張子を.cにしたとたん、関数の先頭以外のint i;をエラーにしてしまうような
はぁ ? 当たり前だと思うが。
0021デフォルトの名無しさん
NGNG拡張子を.cにすればいい
0022デフォルトの名無しさん
NGNG世間では C99 未対応というだけでは
「Cを理解できないコンパイラ」とは呼ばない。
0023デフォルトの名無しさん
NGNG> 拡張子を.cにしたとたん、関数の先頭以外のint i;をエラーにしてしまうような
それが普通ですが
0024デフォルトの名無しさん
NGNG言い出したら「Cを理解できるコンパイラ」は1つもないな
0025デフォルトの名無しさん
NGNG何だかキモいコンパイラだな
0027デフォルトの名無しさん
NGNGはぁ、"俺規格" 至上主義の方ですか。。。
0028デフォルトの名無しさん
NGNG俺規格でもC99でもなくてもブロック内変数は使えるが?
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGどんな内容であれ、その論拠が
うちのはちゃんとできる
では、俺規格と言われても仕方がないと思うが?
0031デフォルトの名無しさん
NGNGブロック内変数をエラーにするコンパイラを教えてくれ。
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG出てくる言葉…それが
「春だな」
0035デフォルトの名無しさん
NGNGint a;
for(int i = 0; i < 10; i++) /*C++で保証*/
;
int b;/*C++で保証*/
for(a = 0; a < 10; a++){
int x = 0/*CでもC++でも保証*/;
x += a;
}
return 0;
}
0036ビル・ジョブス
NGNGC99で一番便利な機能拡張は可変個の引数を持つマクロが定義できるようになったことかな?
皆さんはどう思われますか?
0037デフォルトの名無しさん
NGNG引き数全体を括弧で括ればなんとかなるけどね。
で、ぼけぼけの>18はどこ行った?
0038デフォルトの名無しさん
NGNGそれもいいけど、__func__ もね。
0039デフォルトの名無しさん
NGNG識別子にマルチバイト文字
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG正直それはいらんわ。
0042デフォルトの名無しさん
NGNGそれぞれのトークンを1行ずつ出力するプログラムをつくろうと下のようにしてみました。
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]){
char buf[1024];
char *ptr;
if(argc<=1){
fprintf(stderr, "argment error\n");
exit(-1);
}
strcpy(buf, argv[1]);
if((ptr=strtok(buf, ";"))==NULL){
fprintf(stdout, "%s\n", buf);
}else{
while(ptr!=NULL){
fprintf(stdout, "%s\n", ptr);
ptr=strtok(NULL, " ");
}
}
exit(0);
}
0043デフォルトの名無しさん
NGNGCでも使えるだろうが > ぼけ
004442
NGNGそうすると
abc
bash: cde: command not found
bash: efg: command not found
となっちゃいます。
どこが変なんですか?
0045デフォルトの名無しさん
NGNG当然Cでも使える。通らないコンパイラーで「Cに対応している」とはいわん。
0046デフォルトの名無しさん
NGNG空白あけろよぼけ。わざわざつめるな。
if (argc <= 1) { だろ
0047デフォルトの名無しさん
NGNG悪いことはいわんからセミコロン ; ではなくコロン : でやってみて。
0048デフォルトの名無しさん
NGNG基礎からやりなし!
っていうか、そもそもおまえはどんな本を読んで勉強したんだ。本の名前を書け。
004942
NGNGできますた
0050デフォルトの名無しさん
NGNG多分
$ ./a.out abc;cde;efg
とかやってるんだろうな...。
bash について勉強した方がいいよ。
そのままでは、a.out には abc しか渡っていない。
あと、なんで二回目以降の strtok() 呼び出し時のデリミタが空白なんだ ?
0051デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNG「;」が含まれるパラメーターの渡し方を教えるほうが正当。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG分かっていてからかっているんだろ。明らかにネタだしな。
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNGいや、指摘するほうが知らなかったとみた。
0058デフォルトの名無しさん
NGNG知らなければセミコロンが問題だと分からないと思うが。
0059デフォルトの名無しさん
NGNG問題は知ってる奴が常に解決策を知ってるわけではないと思うが。
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGargvが書き換え可能だと知らないからでは。
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG>>45
それではBCCはCには対応してないってことでつか?
0064デフォルトの名無しさん
NGNGCPUia32-eのマシン(AthlonAMD64)
OSに、fedora core1(kernel2.4系)
コンパイラgcc-3.3.2-1.x86_64
で、64bit版のCのソース書くことになったんだけど、
longが4バイト → 8バイトに変わる以外、何か
気をつけることってありますか?
0065デフォルトの名無しさん
NGNGSELECT * FROM TBL
WHERE A = :A;
LIKEを使ったWHERE条件に変えたいんですが
SELECT * FROM TBL
WHERE A LIKE ':A%'
としても動いてくれません。
埋め込みSQLでLIKE文は使えないんでしょうか?
0066デフォルトの名無しさん
NGNGマルチはやめろ、ヴォケ。
最低でも、
***すれ立てるまでもない質問はここで 第53刷***
http://pc5.2ch.net/test/read.cgi/tech/1081170910/124
に答えてからにしろ。
----------------------------
【SELECT * FROM TBL】の検索
C言語なら俺に聞け! Part 76
http://pc5.2ch.net/test/read.cgi/tech/1081597375/65
C言語なら俺に聞け! Part 75
http://pc5.2ch.net/test/read.cgi/tech/1079331297/953
***すれ立てるまでもない質問はここで 第53刷***
http://pc5.2ch.net/test/read.cgi/tech/1081170910/123
【3 件見つかりました】
0067デフォルトの名無しさん
NGNGすっげぇ。それいいな、何使ってンの?
0068デフォルトの名無しさん
NGNGOpenJane α 0.1.8.2
ログから検索で検索する。
タイトルしか出ないから、結果には手を加えているけどね。
普通にやると
-----------------------------------------
【SELECT * FROM TBL】の検索
PC等 [プログラム] C言語なら俺に聞け! Part 76 65
PC等 [プログラム] ***すれ立てるまでもない質問はここで 第53刷*** 123
PC等 [プログラム] C言語なら俺に聞け! Part 75 953
【3 件見つかりました】
-----------------------------------------
と言う感じ。
あと当然ながら、自分が見ていないスレは検索対象外となる。
0069デフォルトの名無しさん
NGNG0070↑
NGNG0071デフォルトの名無しさん
NGNGこいつはぼけ。このコードでなんでargvを書き換える必要があるんだ?
もしかしてbufにコピーしたあとのbufやbufの指す内容に書き換えがあると
でも思ってるのか?
0072デフォルトの名無しさん
NGNG0073デフォルトの名無しさん
NGNGstrtok() の仕様も知らないで煽ってるつもりなのか ?
0074デフォルトの名無しさん
NGNG・・・・・・・・・・・・・・ぼけ
↑
0075デフォルトの名無しさん
NGNG0076デフォルトの名無しさん
NGNGa=b++;
でaに0が代入されるのはどうしてですか?
++演算子の方が優先順位(?)が高いから、
b++;
a=b;
と解釈されるんじゃないんですか?
0077デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNGそれを説明するのは難しいな・・・
「式の評価」と「副作用」は全く別の作業。
式が評価された "瞬間" に副作用が起こる訳ではない、
とでも言えば分かるかな?
0080デフォルトの名無しさん
NGNGtemp = b;
b = b +1;
a = temp;
と解釈されるだけのことだろ。(temp は、b と同じ型の一時的な変数。)
0081デフォルトの名無しさん
NGNGじゃあその副作用はいつ起こるの?
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNGa=bもb++もただの式評価だと思うがどうよ?
0084デフォルトの名無しさん
NGNG>>80にとっては、いつもの事なんです。見逃してあげて。
0085デフォルトの名無しさん
NGNGT increment(T* p){
T tmp = *p;
++*p;
return tmp;
}
と同等。 T は 適当な数値型に読み変えること。
0086デフォルトの名無しさん
NGNGその通り。ただし b++ のように後置の ++ が付いた式の評価値は、
++ する前の値であると決まってる。b自身の値が本当に ++ されて
1 になる(ことが保証される)のは ; の直後から。
b++ という式の評価値と、bそのものの値が変化する(副作用)とを
区別して考える必要がある。
0087デフォルトの名無しさん
NGNGprintf("%d %d", func());
int func(void)
{
int a, b;
a = rand() % 10;
b = rand() % 10;
return a, b;
}
とやってみたんですけどbのほうが1900と表示されます
0088デフォルトの名無しさん
NGNG無理です
0089デフォルトの名無しさん
NGNGっていうか何見て勉強してるんだよ。
本とか参考にしてるなら、その本の名前ぐらい言えよ!
0090デフォルトの名無しさん
NGNG2つ返してどうやって受け取るつもりだったんだろ ;)
カンマ演算子は便利ですが、こういう勘違いをしたやつが書いたコードが
たまたま文法エラーにならないのでおもしろい。
それはともかく2つ返したら3つ返したくなるのでは?
アドレス渡しの変数で返すのはつまんないし、
もしかするとそれはスタック構造にするべきコードなのかもしれんし、
はたまた、実は2つといってもxとyみたいな組の値だったらどう返すべきかわかるよね? (って
だれにきいてんだろ)
0091デフォルトの名無しさん
NGNG>bのほうが1900と表示されます
と言われても困る。
0092デフォルトの名無しさん
NGNG優先順位と実行順序を混同してはならない
>>86
後置と単項は優先順位が異なっている
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGたぶんrand()は関係ない。
>printf("%d %d", func());
だってこれだもん↑
0095デフォルトの名無しさん
NGNGCFAQ3.2でも同じようなこと書いてあったから、
その通りだと思うんだけど、
> b自身の値が本当に ++ されて
> 1 になる(ことが保証される)のは ; の直後から。
b自身の値が更新されるのは、;以前のどこか、ってことになるよね。
すると、"b++"が評価されて、bの値がすぐ更新されてもおかしくない
と思うんだけどどう?
0096デフォルトの名無しさん
NGNG少なくとも優先順位の観点に於いて後置は単項ではない >真・ぼけ
0097デフォルトの名無しさん
NGNGはぁ ? じゃ、お前は一時変数使わんと説明してみな。
0098デフォルトの名無しさん
NGNGb=b+1
0099デフォルトの名無しさん
NGNG> すると、"b++"が評価されて、bの値がすぐ更新されてもおかしくない
それでも、b++ の結果は +1 される前の b の値であることが処理系によって保証される。
と決まっているんだから、そう覚えろ。
0100デフォルトの名無しさん
NGNGおかしくないと思います。
; に至るまでの間に b に副作用が起こらなければならないので、
b が 1 になっていることが "保証される" のは ; 以降という
意味です。分かりにくかったかもしれません。
0101デフォルトの名無しさん
NGNGこの話の流れの中でマジで書いてるのか ?
頼むからネタだと言ってくれ。
■ このスレッドは過去ログ倉庫に格納されています