C言語なら俺に聞け! Part 95

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:04/12/11 21:50:24
>>949
例えば、このスクリプト内ではプログラムの返り値を使います。

#!/bin/sh
i=100
while [ $i -lt 253 ]
do
a=`ssh 192.168.0.$i who 2> /dev/null`
if [ $? == 0 ]
then
echo "192.168.0.$i" $a
fi
i=`expr $i + 1`
done
953デフォルトの名無しさん:04/12/11 21:51:39
>>952
「このプログラムは返り値を提供しません。標準出力の結果を勝手に解析してください」
でもいい気がするんだけど。実際リターンコードは結構適当だし。
954デフォルトの名無しさん:04/12/11 21:54:32
すみません。先輩から「最近のCの規格で、voidは大文字でも良くなったよ」と聞きました。
試しに
int main(VOID)
{
 printf("VOID(・∀・)\n");
 return 0;
}
を実行してみると、ちゃんと動きました。

この規格は、いつ決まったのでしょうか?
参考になるURL等ありましたら教えてください。
955デフォルトの名無しさん:04/12/11 21:55:25
>>953
返り値はUNIXツールの習慣なんだけど、実際返り値があるとシェルプログラムから
扱うときに非常に便利なんだ。
返り値にもメタファがあって、習慣どおりにしないと不便になる。
956954:04/12/11 21:56:27
すみません。ちょっと間違えました。
957デフォルトの名無しさん:04/12/11 21:56:44
>>951
その「システム」を ISO/IEC9899 は定義せずに shall とか言ってるわけだ
958デフォルトの名無しさん:04/12/11 22:02:03
>>950
そんな決まりはない
959デフォルトの名無しさん:04/12/11 22:03:24
>>955
&&で繋いで処理する時なんかかな?
./configure && makeとか
960デフォルトの名無しさん:04/12/11 22:03:33
>>958
馬鹿
961デフォルトの名無しさん:04/12/11 22:07:58
>>958
無知
962デフォルトの名無しさん:04/12/11 22:12:23
>>960
よく読めよ
返却値の型が int の main を受理できなければならないだけで
それ以外を implementation-defined としているだろ
ちゃんと文書化してあれば合法なんだよ
963デフォルトの名無しさん:04/12/11 22:15:19
>>954
windows.hなんかをインクルードするとそうなる。
windows.hの中でインクルードされているwindef.hかどっかに#define VOID voidと書かれているから。
964デフォルトの名無しさん:04/12/11 22:16:27
>>954
その先輩アホだから見限った方が良いよ
965デフォルトの名無しさん:04/12/11 22:16:46
DWORDとかVOIDとか、使いたくないんだけど。。
966デフォルトの名無しさん:04/12/11 22:18:20
どうせならVoidやTrueも通るようにすればいいのに
967デフォルトの名無しさん:04/12/11 22:19:00
>>966
Pascalプログラマ?
968デフォルトの名無しさん:04/12/11 22:20:14
HTMLを手書きしてる人で
<Html>
<Head><Title>hoge</Title>
</Head>
</Html>
ってやってるのがいたな
969954:04/12/11 22:26:42
>>963
windows.hなんて全然使ってません。
#includeしているのは、<stdio.h>だけです。

gccとbccとvctkの全てで動作を確認しました。
嘘だと思うなら、試してみてください。
970デフォルトの名無しさん:04/12/11 22:28:46
>>962
「ちゃんと文書化してあれば」って何のことだ?
社内規定?
971954:04/12/11 22:28:50
あと、
int main(Void) { ... }
でも動きました。
972デフォルトの名無しさん:04/12/11 22:29:09
教えてください。
入力した文字列を格納した配列のポインタを戻したいんですけど、警告がでました。
警告1:プロトタイプ宣言のない関数'input'の呼び出し。(関数 main)
警告2:コードは効果をもたない。(関数 main)
警告3:問題のあるポインタの変換。(関数 input)
ソース↓
#include <stdio.h>
#define MAX 256

char *input();

void main()
{
*input();
}

char *input()
{
char s[MAX];

printf("COMMAND:");
scanf("%s", s);

return s;
}
973デフォルトの名無しさん:04/12/11 22:30:58
>>972
つ、釣られないぞ…
974デフォルトの名無しさん:04/12/11 22:31:16
>>972
マルチポストするな消えろ
975デフォルトの名無しさん:04/12/11 22:31:56
>>972
char *input()はですねー、char*型の返り値を返す、inputという関数の定義なんですよー にゃんにゃん
976デフォルトの名無しさん:04/12/11 22:32:39
>>960-961
規格を読んだことのない半可通
977973:04/12/11 22:33:21
>>972
お前が言いたいだろうことを最大限考慮してやった↓。
これがしたいんだろ?

#include <stdio.h>
#define MAX 256

char *input();

void main()
{
  char* p;
  p = input();
  printf("%s\n", p);
}

char *input()
{
  static char s[MAX];

  printf("COMMAND:");
  scanf("%s", s);

  return s;
}
978デフォルトの名無しさん:04/12/11 22:33:33
979デフォルトの名無しさん:04/12/11 22:34:49
>>976
環境依存のコード書く馬鹿?
980デフォルトの名無しさん:04/12/11 22:35:31
>>979
>>976は揚げ足取りたいだけの馬鹿
981デフォルトの名無しさん:04/12/11 22:37:02
バカって言われて悔しかったんだろ
もうほっとけ
982デフォルトの名無しさん:04/12/11 22:37:04
K&Rでvoid mainに関する記述があるのはどのあたり?
983デフォルトの名無しさん:04/12/11 22:38:03
>>979
環境依存?覚えた言葉をすぐ使っちゃダメってママに言われたろ?
984デフォルトの名無しさん:04/12/11 22:38:12
*char input()
で駄目?
985!=976:04/12/11 22:38:31
>>980
揚げ足を取っているわけではなくて、まれではないと思うよ。
986デフォルトの名無しさん:04/12/11 22:38:58
>>983
・・・しょぼい煽りだな。
狭い世界で生きててくださいねw
987デフォルトの名無しさん:04/12/11 22:40:13
>>985
希ではないから良いコードだというわけではないだろう。
988デフォルトの名無しさん:04/12/11 22:40:24
  /■\
  (´Д`iill) 
  (⊃ ⊂)
 (⌒(⌒_.ノ
989デフォルトの名無しさん:04/12/11 22:40:55
で、K&Rにvoid mainに関する記述はないの?
990デフォルトの名無しさん:04/12/11 22:41:16
ごめん、誤爆。
991デフォルトの名無しさん:04/12/11 22:41:46
>>987
良いか悪いかじゃない。規格に定まっているかのような嘘をつくな
992デフォルトの名無しさん:04/12/11 22:41:48
>>958=>>962=>>976=>>983はトリップ付けてね
993949=954:04/12/11 22:43:42
>>949はこれほど好意的に受け止めてもらったのに
>>954
int main(VOID, argv)
int VOID;
char **argv;
{ ... }
は相手にしてもらえませんでした。
ちょっと悲しいです。

でも、>>946さんなどには満足していただけたかと思います。
994デフォルトの名無しさん:04/12/11 22:44:15
次はPart96だな
995!=976:04/12/11 22:44:29
>>987
例えば、組み込み。
ヘッダは自分で書くことが非常に多い。
996デフォルトの名無しさん:04/12/11 22:44:54
>>991
頭悪いなぁ…
997デフォルトの名無しさん:04/12/11 22:45:41
>>995
(;´Д`)だから?
998デフォルトの名無しさん:04/12/11 22:45:41
1000下と
続きはこっちで

C言語なら俺に聞け! Part 96
http://pc5.2ch.net/test/read.cgi/tech/1101615970/
999デフォルトの名無しさん:04/12/11 22:46:05
(・∀・)イイ!!
続きはこっちで

C言語なら俺に聞け! Part 96
http://pc5.2ch.net/test/read.cgi/tech/1101615970/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。