[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 19:06 / Filesize : 223 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 95



1 名前:デフォルトの名無しさん [2012/01/13(金) 22:05:06.14 ]
C言語の*入門者*向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 94
toro.2ch.net/test/read.cgi/tech/1324648274/
★過去スレ
makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
  ↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 155代目
toro.2ch.net/test/read.cgi/tech/1325685876/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

長くなりそうなコードはcodepadに貼り付けてもいいでしょう
codepad.org/

702 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 01:18:19.64 ]
直線距離もとめたって意味が無いってわからないのかな
いいかげんあきらめろよ

703 名前:デフォルトの名無しさん [2012/01/27(金) 01:57:40.67 ]
>>702
陸上では、あまり意味がないかもしれませんが
海上などでは、直線距離で大丈夫ですよね?

704 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 02:06:52.65 ]
>>703はやっぱりアホだ


705 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 02:29:56.50 ]
>>684
はずかしがるってことは、間違えている内容をちゃんと理解できてるから。
恥ずかしがらなくていいよとはいえないけど、喜んどけ

706 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 02:31:02.44 ]
>>685
最長不倒関数とか懐かしい言葉を出しつつも関数の行数を出さないあたりが渋いよね

707 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 02:33:02.24 ]
>>703
海流

708 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 03:12:57.15 ]
>>685はwc -l を知らない肉体労働者

709 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 03:13:41.57 ]
>>705は優秀な燃料管理技士

710 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 03:55:17.37 ]
wcで関数の行数数えるのも面倒だろ。
つか、ファイルに分けるんだったらその時点で行数わかるし。



711 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 04:21:46.97 ]
「コードの総行数」という定義は、意外と厄介。

1文を複数行に分けて書いたときをどう扱うかにもよる。
コメント行を含めるか、含めないかでも変わる。

結局、元の質問(>>665)が、実行数と論理行数(ステップ数)の
どっちが欲しいかによる。

答えは知らないけど・・・。

712 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 04:28:50.08 ]
>>711
ステップカウンタってのがあるよ。

713 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 04:44:45.48 ]
意味ないけどな。

714 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 12:30:45.04 ]
擬似乱数じゃない本物の乱数(暗号的なんちゃら乱数)を使いたいんですが
ライブラリは存在しませんか?

715 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 12:37:37.62 ]
/dev/random
openssl, ssh, gmp, crypto

716 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 12:39:02.26 ]
>>714
今はそういうライブラリは存在しない。

そもそも、
・一方向性関数が存在すれば暗号論的擬似乱数生成機が存在する事が知られている。
・現在のところ、一方向性関数の存在性は証明されていない。
・一方向性関数の存在性が示せれば、P≠NP予想が証明できる。
という状況。

凡人にゃあ無理。

あとは、ソフトウェアじゃなくてハードウェアデバイスでなんとかするしかない。
放射性物質の崩壊を検知して、それを0,1で置き換えてくれる装置とか。


717 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 12:53:47.90 ]
ja.wikipedia.org/wiki/Randのコード例のものをコピペして動かしても
常に0しか返ってきません
原因は何故ですか?

718 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:27:52.01 ]
だって return 0; だから・・・

719 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:34:16.43 ]
え?乱数とreturn 0に何の関係があるんですか?
出力はreturn 0の前ですけども

720 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:38:49.56 ]
「返ってくる」のはreturn 0だからという言葉遊びだと思うよ
codepad.org/Vou6Xbqh



721 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 13:54:56.13 ]
何で実行するたびにいつも同じ数字が返ってくるんですか?
毎回違う数字は帰れないんですか?

722 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 14:16:39.52 ]
コピペ間違いじゃなければお前の実行環境に問題がある。
Wikipediaの例は標準的な環境で正しく動くはずだ。

723 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 14:37:59.51 ]
VC++2010Express
Win32コンソールアプリケーション
test.cにコード貼り付けて
printfとreturn 0;の間にブレークポイント置いてF5押したら
同じ数字しかでません

724 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 15:20:46.38 ]
>>723
もいっかいやってみろ。さっきとは違う値が出ないか?

725 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 15:29:41.77 ]
>>714
今年出るIvy Bridgeまで待て。AVXにRdRAND命令が追加される。

726 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 16:45:41.50 ]
メモリやHDDの書込速度を測ってその最下位ビットを使え。

727 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 16:58:53.45 ]
>>723
やってみた。VC++のrandomの性能が悪すぎる。
seedの下位ビットはまるっきり無視されてるような感じだ。
srand((unsigned int)(time(0) << 16)));
こんなもんでどうか。

728 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 17:01:26.43 ]
>>717
処理系によっては、1回目の値が前回実行時と大差ないものがあり、RAND_MAXで割ると0.6あたりをウロウロしたりする。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
srand((unsigned int)time(0));
printf("%d¥n", rand());
return 0;
}

上記コードを3回実行してみると、
gcc version 4.2.1 (Apple Inc. build 5664)では
1470289798
1470306605
1470306605


codepad.org/ では
121543468
627453109
1744218406

応急回避方法は、0~9が必要なら、rand() % 10

729 名前:SCHEME餃子 ◆8X2XSCHEME mailto:sage [2012/01/27(金) 17:40:58.46 ]
>>692
俺もリンドバーグのファンだよ。

730 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 17:58:24.26 ]
生成速度はよくないが、規則性のないはずの乱数。


#include <stdio.h>

__int64 rdtscval() { __asm { rdtsc } }
void waitfnc(){FILE *fp = fopen("tmp", "wb");fwrite("tmp", 1, 3, fp);fclose(fp);}

unsigned int rand_rdtsc() {
unsigned int n,x=0;
for(n=0; n<32; n++) {
waitfnc();
__int64 val=rdtscval();
x|=((val>>3)&1)<<n; }
return x; }


void main() {
for(int n=0; n<100; n++) printf("%d\n",rand_rdtsc());
}



731 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:02:05.15 ]
>>730のウェイトをメモリアクセスにしたら速度は上がるが、ほぼ等速度になってしまい乱数にならない。
ファイルへのアクセスだとOSや他のアプリやサービスなどが働いて等速度でなくなる。

732 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:09:55.22 ]
本当wikipediaのコードはksだな

733 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:12:07.47 ]
__asmは64bitで使えないからダメ。

734 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:21:25.14 ]
>>733
なるべく高精度のタイマーだったらなんでもいい。最低一ビットリターンできれば良い。

735 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 18:33:22.51 ]
>>714そっちのけで、入門編から飛び出している件

736 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 19:28:27.89 ]
>>733

#include <stdio.h>

#ifdef _WIN32 & !(__GNUC__)
struct timezone { int tz_minuteswest; int tz_dsttime; };
#include <windows.h>
int gettimeofday(struct timeval *tv, struct timezone *tz) {
LARGE_INTEGER t;
QueryPerformanceCounter( &t );
tv->tv_sec = t.HighPart;
tv->tv_usec =t.LowPart;
return 0; }
#else
#include <sys/time.h>
#endif


void waitfnc(){FILE *fp = fopen("tmp", "wb");fwrite("t", 1, 1, fp);fclose(fp);}

unsigned int rand_rdtsc() {
unsigned int n,x=0;
for(n=0; n<32; n++) {
waitfnc();
static struct timeval t;
gettimeofday(&t, NULL);
x|=((t.tv_usec>>3)&1)<<n; }
return x; }


void main() { for(int n=0; n<100; n++) printf("%d\n",rand_rdtsc()); }

737 名前: 忍法帖【Lv=27,xxxPT】 mailto:sage [2012/01/27(金) 19:44:24.65 ]
組織は些細な物事に対して、不釣り合いなほど重点を置く

738 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:13:15.74 ]
>>727
下位ビットが無視されるって、何秒かたっても同じ乱数が生成されたってこと?

739 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:14:18.72 ]
>>728
世の中の逆を行くコードを書くことになるとは

740 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:14:53.69 ]
>>738
>>727 がバカなだけ
内部状態の伝播にちょいと時間がかかる



741 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:21:17.99 ]
男なら擬似乱数は許せないのだよ君たち

742 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:42:37.60 ]
だからIvy Bridgeまで待てといっとろうが。
待てないならこれでも使え。
www.fdk.co.jp/whatsnew-j/release041005-j.html

743 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 20:51:48.00 ]
そのなんとかブリッジっていうのはVC++2010デモ使えるのでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:16:44.82 ]
疑似乱数なら、Boostでも使うとか。

745 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:31:46.54 ]
>>743
そりゃ使えるだろ。

746 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 21:35:31.60 ]
>>745
なんとかなんとかじゃないひとが使えないんじゃないでしょうか

747 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:05:36.77 ]
日本語でおk。

748 名前:デフォルトの名無しさん mailto:sage [2012/01/27(金) 22:43:43.41 ]
南斗か

749 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:18:21.29 ]
ttp://www9.plala.or.jp/sgwr-t/c/sec15-5.html
このサイトの、「(3)自己参照構造体を使ったリスト処理」のところで、

/* ポインタのつなぎ換え */
p->next = head; /* 今までの先頭ポインタを次ポインタに */
head = p; /* 新たな領域を先頭ポインタに */


とあるのですが、「p++」などで、次の構造体のアドレス移動していないのにどうして上書きせずに次のアドレスの構造体に保存できるのでしょうか?
用語がうまく使えなくて申し訳ないのですが・・・

750 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:49:05.13 ]
リンク先見る気は無いがコメント通りの処理を目指してんならnextて要素名は変じゃね?



751 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:57:37.35 ]
>>749
どうしてって言われてもリンクリストだからとしか言いようがない。
セルが配列みたいに連続して並んでたらポインタをインクリメントして次のセルだけど。
図入りでコードがあるんだから、おっかけてください。

752 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 00:58:59.07 ]
リストの先頭に追加してるだけ

753 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 01:44:40.31 ]
mallocで場所を確保するときにpが新しいアドレスに移っているということですね

754 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 02:06:55.48 ]
C言語を勉強しているのですが、if文の中で

if(式A||式B||式C||式D)

のように複数の式が論理演算子||で並んでいる時に、手持ちのコンパイラですと
実行時に、左側の式から順に(式A、式B、式C、式Dの順で)評価されていて、
かつ、途中の式が真の場合、残りの式は評価されていないみたいです。

※例えば式Aが真の場合、式B〜Dの中に含まれている関数は実行されない

これはC言語に共通する規則でしょうか?
それともコンパイラ固有の仕様ですか?

755 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 02:08:56.05 ]
>>754
C言語の規格通り
「短絡評価」といったキーワードで検索してみる

756 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 02:11:23.51 ]
>>755
ありがとうございました

757 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 07:11:53.75 ]
>>753
>pが新しいアドレスに移っているということですね
この表現の意味がわからない。

ポインタといっても通常の変数と変わらない。
mallocの戻り値を保持しているだけだよ。

ついでにリスト構造について、根本的に理解ができていないと思われる。
ポインタpに対してp++すると、pが指しているオブジェクトサイズ分値が増える。
配列の場合はメモリ上に稠密にデータが確保されているため、配列の次の要素を
指すことになる。リストで次の要素を指すためにはp = p->next;とすることになる。

758 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:45:05.28 ]
#include <stdio.h>

char strput(char *str){
while(*str){
putchar(*str);
*str++;
}
}

int main(void){
char str[20];

scanf("%s", str);

strput(str);
}

これは入力した文字を出力するプログラムなのですが、
6行目の「*str++」について疑問があります
もちろん、コンパイルすればエラーも出ずに結果も正常なのですが
「*」がない「str++」にしても同様にできました

そこで「*」がいるのかいらないのか分かりません
つける必要はないんでしょうか?

759 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:46:21.32 ]
ない

760 名前:デフォルトの名無しさん mailto:sage [2012/01/28(土) 17:48:00.12 ]
何のためにつけるか、考えようね



761 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 01:22:28.75 ]
整数は大丈夫だろうけど、
浮動小数点数の演算結果って、
CPUによって違ったりしたりする?
i7, i5 と比べて ATOM とか、
FX, A と比べて E, C とか、
後者は演算ユニットが128ビットと64ビットで差があったりするんだが。


762 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 01:26:59.68 ]
>>758
#include <stdio.h> // printfなどの定義
char strput(char *str) // *は、strがポインターであることをコンパイラに指示する
{
while(*str) { // *strは、strが指す位置の文字データ内容
putchar(*str); // 文字を出力
str++; // ポインターの値を+1する。データを書き換えるわけではないので*は不要
}
}

int main(void)
{
char str[20];
scanf("%s", str);
strput(str);
}


763 名前:デフォルトの名無しさん [2012/01/29(日) 01:50:14.07 ]
C言語に詳しい人に質問です。

p は構造体へのポインタです。

*((int *)((char *)p - sizeof(int)))
だとか
*((char *)p - sizeof(int))
といったかんじのコードをみかけるのですが、
これって何を意味しているのですか?



764 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 03:28:13.08 ]
*((char *)p - sizeof(int))の場合。

pには構造体の配置されてるアドレスが入っている。それをたとえば123456番地とする。
sizeof(int)は4バイトとすると

123452=123456-4番地を文字としてみたときの0-255のいずれかの値を表す。

765 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 03:32:51.06 ]
初心者っぽいので。

char p[]="abcxyz";とすると、p+3は文字列"xyz"の先頭アドレスだったり、*(p+3)はxを表したりする。

この操作と同じ。これがわかり無くそうになってだけで同じだ。

766 名前:763です [2012/01/29(日) 04:37:03.22 ]
764さん, 765さん
ありがとうございます。
構造体の配置されているアドレスであるpからtypeof(int)を
引いたアドレスにはどんな意味があるのでしょうか?
ここを参照してintやcharとしての値を取得する目的があるのでは
ないかと思うのですが...






767 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 05:01:34.61 ]
>>766
それはその通りだけど、その場所に何が入っているかなんてCでは決まっていない。
環境またはそのプログラムが何かを入れているのだろうとしか言えないな。

768 名前:763です [2012/01/29(日) 05:15:59.87 ]
>>767
たとえば、
C++の例ですが
ttp://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=287
には、
int sz= *(((char *) p)-sizeof (int));
がnew XXX [size] したときのsize と関係があるようなことが
書いてあります。
環境依存かもしれませんが。





769 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 05:37:50.44 ]
一部しか読んでないけど。

new された配列 char p[N] について。
C++ では new された配列は delete [] p; といったように書く。
delete [] のようにした場合、その配列の要素分だけメモリから開放するわけだが、
その要素数は、p の sizeof(int) 分手前に格納されている。(環境依存のはず)

770 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 05:49:41.03 ]
【中国BBS】2030年に韓国が日本を抜く? 反対意見が多数

中国大手検索サイト百度の掲示板に、「2030年に韓国のGDPは日本を追い越すって本当?」というスレッドが立てられた。
これに対して反対意見が多数寄せられている。

● スレ主:八戒窘6
  アジア開発銀行のデータによれば、2030年に韓国のGDPは日本を追い越すらしい。

● せんとう
  どんな予測も多少なりとも正確ではない所があるが、今回の話はあり得なさ過ぎる。

● satay醤
  本当にデタラメだな。アジア開発銀行によるレポートだって?じゃあバンク・オブ・アメリカや欧州の銀行の結論はどうなのよ?

● 佚名野菜地
  アジア開発銀行ってのは、韓国人が開いているのか?

● Joseph19969
  俺の妄想では、2100年日本人の1人当たりのGDPは46万ドル、韓国は8万だな!

● o落葉不知秋o
  その頃までに韓国という国が残っているかどうかも分からないぞ。

● 梨花陰凉
  死んでも信じない。

● MakiのLove
  なんか最近、韓国のニュースが多くね?
news.searchina.ne.jp/disp.cgi?y=2012&d=0128&f=national_0128_091.shtml





771 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 06:57:55.48 ]
>>768
その記事にも「典型的な実装では」て断って書いてあるだろうが。

772 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 07:19:31.51 ]
>>768
念のため、配列の先頭よりも前をさすような減算を行ったばあいの動作は未定義
あと、配列の最終要素の次をさすまでは合法だけど、内容を取得しようとしたときの動作は未定義

773 名前:デフォルトの名無しさん mailto:sage [2012/01/29(日) 10:53:23.43 ]
>>759,760,762
意味を理解しながら勉強していこうと思います
ありがとうございました

774 名前:763です [2012/01/29(日) 11:49:16.47 ]
>>769,771,772
ありがとうございます。



775 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 16:16:16.16 ]
オレC言語だけど今日は忙しいのでもう閉店ね。
また明日来て下さい。


776 名前:デフォルトの名無しさん [2012/01/31(火) 16:32:48.21 ]
aとbは真偽値を取る変数なんですが、

!(a && b)

という式を||の式に変換すると、

(a == 0 || b == 0)

という式で合ってますでしょうか?
ド・モルガンの法則でぐぐって一応確認しました

777 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 16:36:40.26 ]
あってるけどなんで( !a || !b )にしないんだろう

778 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 16:39:46.26 ]
>>776
NANDゲートか。
www.allaboutcircuits.com/vol_4/chpt_3/5.html

779 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 18:17:39.94 ]
ありがとうございました
!aだとよくわかんないので、
他人のソースを書きなおす作業をしてます

780 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 18:19:49.06 ]
たまにそういうやついるよね。
なんか間抜け。



781 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 18:54:03.42 ]
fuckな話をすれば、
0とか1とかアフォなことは書かず、FALSEとかTRUEとかにしろ


782 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 19:00:17.31 ]
どちらかというと後者の方がアホに見えるけどな。

783 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 19:40:46.96 ]
>>776
わざわざなんちゃらの法則だしたり2ちゃんできかないと答えに自信が持てないような難易度か?


784 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 19:44:35.50 ]
こんな質問で俺様理論を展開するお前らにあきれた

785 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 19:50:27.65 ]
ん?俺様理論てのは>>781だけじゃないのか?

786 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:29:47.10 ]
>>781
Cの場合、FALSEは0のみだからいいにしても、TRUEは0以外があてはまるから
そんなことするとわけのわからないバグに悩まされるだけだよ。
>>783
わざわざ出すとか以前に、ド・モルガンの法則なんて基本中の基本だろ。

787 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:33:08.92 ]
TRUEが0のばあい
FALSEは-1じゃなかったっけ
なんかどっかでみたことあるよw

788 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:34:26.93 ]
hoge_p() == TRUEとかやってバグったことあるよな。

789 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:36:58.60 ]
これがmalloc/free論争と対を成すboolean論争か

790 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:38:47.89 ]
>>787
違う。
>>789
論争にもなっていない。



791 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:39:10.55 ]
C言語ならゼロか非ゼロしかねーよ

792 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:39:50.47 ]
#undef TRUE
#undef FALSE

#define TRUE 0
#define FALSE (!TRUE)

793 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:40:02.15 ]
((!!(a=2))==true)が絶対trueに成ればいいんだけど
そもそもCに即値trueなんて無いしな

794 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:40:53.55 ]
どんどんわけのわからないレスが増えていくなw

795 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:41:49.09 ]
>>776みたいに0と比較するのは良かったはず

796 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:42:29.40 ]
なぁ、自信がないならわざわざ発言しなくていいんだぞ?

797 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:43:06.48 ]
絶対大丈夫だよ(俺の脳内世界では)

798 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:43:19.44 ]
>>792
こいつ殺したくなった。コード見て殺意がわいたのは
↓これ書いた奴についで二人目だ。
#define void int

799 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:44:24.02 ]
通報した。

800 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:44:36.06 ]
昔はしょうがなかったんだよ
voidなんてハイソな予約語なんか無かった



801 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:45:23.72 ]
#define TRUE (1==1)
#define FALSE !TRUE

802 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:47:01.44 ]
正解書いとくか
#define TRUE (!0)
#define FALSE (!TRUE)






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef