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


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

C言語なら俺に聞け(入門篇)



1 名前:デフォルトの名無しさん [2006/05/04(木) 08:53:09 ]
入門者向けの俺に聞けスレです。
なんでもきいてよね

950 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 00:36:41 ]
>>944
先頭指してなかったら、キャストもせずに、->演算子使えるわけないじゃん。

951 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 00:51:03 ]
>>950
アホ?

952 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 01:02:50 ]
p->otherはstruct letter* だから>>941を間違いってのはアレだよな

953 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 07:50:03 ]
for(;;)とwhile(1)はどっちがはやいんですかね?

954 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 08:03:07 ]
>>953
大丈夫、お前よりもよっぽど賢いコンパイラにとって、それらはどちらも同じと解釈されるから気にするな。
#まぁ、前者を推奨するがな。

955 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 09:10:13 ]
大昔の頭の悪いコンパイラだと for(;;) の方が早いとか聞いた気もするが、
今のコンパイラならどっちでもいいな。

956 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 09:12:34 ]
(;;)

957 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 09:52:47 ]
(;o;)

958 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 10:03:37 ]
(;A;)



959 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 10:14:25 ]
('A')

960 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 10:46:03 ]
("ω")

961 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 11:29:39 ]
( ; _ ; )

962 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 16:27:56 ]
(T-T)

963 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 17:36:00 ]
(:-D)

964 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 17:42:05 ]
:-D~~

965 名前:デフォルトの名無しさん mailto:sage [2006/07/19(水) 22:24:10 ]
>>863
void SASSERT_(int(*p)[1]) { }
#define SASSERT(b) SASSERT_((int(*)[(b) ? 1 : -1])0)

は、単に

#define SASSERT(b) ((void)(int(*)[(b) ? 1 : -1])0)

でいいことに今頃気づいた。

966 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 00:37:15 ]
K&R本の1.5.2 文字のカウント
のプログラムをちゃんと打って、シグウィンでコンパイルしても
実行したら全くカウントしてくれないのですが、
どうしてでしょうか?誰か教えて下さい。

967 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 02:24:54 ]
>>966
そのプログラムを貼れ。

968 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 07:27:35 ]
#include <stdio.h>

/* 入力される文字をカウント;第1版 */
main()
{
long nc;

nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}



969 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 08:29:16 ]
入力を終了しないからいつまで経っても表示されないだけに一票。

970 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 09:21:38 ]
でもこっちはちゃんとできるんですよ。

#include <stdio.h>

/* 入力された文字を複写;第2版 */
main()
{
int c;

while((c = getchar()) != EOF)
putchar(c);
}

971 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 10:54:10 ]
いやだから・・・。

972 名前:デフォルトの名無しさん [2006/07/21(金) 11:50:37 ]
ST.c: 関数 `function2' 内:
FLIST.c:75: 警告: 引数 2 個の `strcat' を渡しますにより、キャストなしで整数からポインタを作りました
:wq!

上記の警告がでました。問題の75行目 strcatは以下です。
strcat(strLine,ctime( &buf.st_mtime ));/*警告箇所*/
st_mtimeはファイル情報を取得する処理【stat関数】のメンバでbufの変数定義は
struct stat buf;、strLine変数はchar strLine[255];としております。
警告を回避するキャストの方法を教えてください。環境はLinux redhatです。

973 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 12:24:15 ]
>>972
#include <time.h>
してないってことはない?

974 名前:デフォルトの名無しさん [2006/07/21(金) 12:40:43 ]
レスありがとうございました。インクルード記述はあります。
プラットホームをUnixからlinuxに移した際に
リコンパイルで警告がでました。

975 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 13:04:56 ]
>>974
その周辺ロジックだけのプログラム作っても再現する?
こちらでは問題ないのだが。
以下、テストコード。
--
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>

int main(int argc, char ** argv)
{
char strLine[255];
sprintf(strLine, "%s:", argv[1]);
struct stat buf;
stat(argv[1], & buf);
strcat(strLine,ctime(&buf.st_mtime));
puts(strLine);
return 0;
}


976 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 13:32:38 ]
>>968
それは何か入力後に EOF を渡す必要がある。
これは Cygwin だとどうなっているのか分からないが、
UNIX 系 OS だとデフォルトでは Ctrl+D でできるのが
普通だ。Windows のコマンドプロンプトや MS-DOS
プロンプトでは Ctrl+Z だ。どちらかを入力してみれば
できるんじゃないだろうか。


977 名前:968 mailto:sage [2006/07/21(金) 15:13:46 ]
>>976
ありがとうございます。Ctrl+Zで出来ました。

978 名前:デフォルトの名無しさん mailto:sage [2006/07/21(金) 15:18:18 ]
結局>969じゃん。



979 名前:968 mailto:sage [2006/07/21(金) 16:38:45 ]
間違えました。Ctrl+Dでした。

>>978
入力を終了しなくても出来そうだな、とか
馬鹿な考えを起こしていたもので...m(_ _)m

980 名前:デフォルトの名無しさん mailto:sage [2006/07/22(土) 14:43:42 ]
> 賢いコンパイラにとって、それらはどちらも同じと解釈されるから
while(1) だと警告がでる
for(;;) だとでない

981 名前:デフォルトの名無しさん [2006/07/23(日) 12:03:52 ]
プロトタイプ宣言のない関数’printf'の呼び出し(関数main)
という警告文が出るけどなに?

982 名前:デフォルトの名無しさん [2006/07/23(日) 12:07:13 ]
>>981
#include <stdio.h>がないとか
printfがpirntfになってたりとかじゃないかな?

983 名前:981 [2006/07/23(日) 12:10:28 ]
>>982
その辺は確認しているのだけど
 そのへんが問題なのかな?

984 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 12:33:16 ]
こういう場合、ソースを貼り付けたら一発で分かったりすることも多い。

985 名前:981 [2006/07/23(日) 12:46:51 ]
#include <sudio.h>

int main( )
{
int n=500+ 150;
printf("%d", n);
return 0;
}
こんな感じなんだけど諸兄の
意見はいかがですかね?

986 名前:デフォルトの名無しさん [2006/07/23(日) 12:48:02 ]
int a;
char s[3] = "FF"

a == 255
みたいなイメージで、文字データとして16進の形でcharの配列に入ってるものをint形の変数に代入する方法ってない?


987 名前:デフォルトの名無しさん [2006/07/23(日) 12:48:41 ]
1はツンデレ

988 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 12:52:46 ]
>>985
1行目で既に破綻が



989 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 12:59:38 ]
>>986
strtol

990 名前:981 [2006/07/23(日) 13:00:32 ]
>>988
ありがと。いまきずいた(汗

991 名前:986 mailto:sage [2006/07/23(日) 13:04:15 ]
>>989
さんくす、助かった

992 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 18:01:34 ]
よくコンパイルまで行ったな。

993 名前:デフォルトの名無しさん mailto:sage [2006/07/24(月) 10:40:46 ]
おまいら日本語よりC言語のほうが意思疎通出来るんだな(w

994 名前:デフォルトの名無しさん mailto:sage [2006/07/24(月) 10:55:00 ]
次スレは>>995が立てるそうです。

995 名前:デフォルトの名無しさん mailto:sage [2006/07/24(月) 18:38:56 ]
次スレはいらない。

996 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 09:49:42 ]
入らなかったら拡張しろ

997 名前:デフォルトの名無しさん [2006/07/25(火) 16:42:16 ]
1000

998 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 18:11:33 ]
スマン…まさか携帯から立つとは思わなかったんだ…
次スレ
C言語なら俺に聞け(入門篇) ぱぁと2〜
pc8.2ch.net/test/read.cgi/tech/1153818463/

スレタイについては反省していない



999 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 18:21:20 ]
>>998


1000 名前:デフォルトの名無しさん mailto:sage [2006/07/25(火) 18:29:03 ]
>>998
おまえというやつは・・・乙

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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