トップページ⇒tech
1001コメント245KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d v(^o^i)d v(^o^i)d v(^o^i)dNGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。

エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/

各種リンク、関連スレは>>2-13あたり

C言語なら俺に聞け! Part 92
http://pc5.2ch.net/test/read.cgi/tech/1096696253/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさんNGNG
【コンパイラ】
gcc
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/
Visual C++ Developer Center: Microsoft Visual C++ Toolkit 2003
http://msdn.microsoft.com/visualc/vctoolkit2003/

【ライセンスや機能などに問題あり】
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デフォルトの名無しさんNGNG
━━━━━━━━━━━━━━━━━終了━━━━━━━━━━━━━━━━━
0004デフォルトの名無しさんNGNG
新スレ激しく乙
0005デフォルトの名無しさんNGNG
ifsream in("test.dat");
string line;

while( !in.eof() )
{
getline(in, line);
}

としてtestファイルから行単位で読み込むときに1個以上の空白文字
を含む行を読み込まないようにするにはどうすればいいのでしょうか?
00065NGNG
>1個以上の空白文字を含む行
というか

1個以上の空白文字のみを含む行
です。
よろしくお願いします。

0007デフォルトの名無しさんNGNG
if (読み込まない条件) {
continue;
}

continue について調べてみたらOKかと。
0008デフォルトの名無しさんNGNG
・・・ってこれだと読み込んで何もしない、ってことになるのかw
読み込んでからでないと条件に満ちているかどうかはわからないから、
ある条件の行を読み込まない、という処理は不可能ですw
0009デフォルトの名無しさんNGNG
スレタイ読め
0010デフォルトの名無しさんNGNG
とりあえず前スレから埋めてくれ。
00115NGNG
すいませんスレ間違えました。
>>7
その読み込まない条件をどう書けばいいのか・・
0012デフォルトの名無しさんNGNG
多分こっち
【初心者歓迎】C/C++室 Ver.10【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1097416187/
0013デフォルトの名無しさんNGNG
>>10
980越えての埋めは不要
0014デフォルトの名無しさんNGNG
g/^ *$/d
空白が0個の行は残ってもいいんだよね?
0015デフォルトの名無しさんNGNG
>>14
いい。
っていうかスレ違い。
0016デフォルトの名無しさんNGNG
原点(x=0 , y=0)から各座標点までの直線とx=0、y=+∞の水平線の角度を算出して、
角度の小さい順でソートしたいのですが、どのようにすれば良いのでしょうか?
以下のような逆時計回りの順序にしたいのですが・・・
1. x=0,y=+5  (x=0〜第2象限)
2. x=-3,y=+3 (第3象限)
3. x=-2,y=-4 (第4象限)
4. x=+3,y=+4 (第1象限)

わかりにくかったらすいません。
よろしくお願いします。
0017デフォルトの名無しさんNGNG
>>16
座標と角度をセットで構造体 (の配列) に突っ込んで qsort()。
0018デフォルトの名無しさんNGNG
ソートの方法を聞いているのか
角度の大小の判定方法を聞いているのか…

そもそもスレ違いな希ガス
0019デフォルトの名無しさんNGNG
srand()って渡す値か同じだとrand()が返す値も同じになるんですか?
0020デフォルトの名無しさんNGNG
うん
0021デフォルトの名無しさんNGNG
>>16
    /\___/ヽ
   /''''''   '''''':::::::\     
  . |(●),   、(●)、.:| + 全部自分でやりなさい。
  |   ,,ノ(、_, )ヽ、,, .::::|.    
.   |   `-=ニ=- ' .:::::::| +   
   \  `ニニ´  .:::::/  +  
,,.....イ.ヽヽ、ニ__ ーーノ゙-、    
:   |  '; \_____ ノ.| ヽ i   
    |  \/゙(__)\,|  i |
    >   ヽ. ハ  |   ||.
0022デフォルトの名無しさんNGNG
unsigned int が sizeof( unsigned int ) * 8 bits なのは規格?それとも処理系依存?
0023デフォルトの名無しさんNGNG
sizeof( unsigned int ) * char なのは規格。
char が  8 bits なのは処理系依存。
だったと思う。
0024デフォルトの名無しさんNGNG
>>22
unsigned intがsizeof(unsigned int) * 8bitsというのは保証されているけれど、
sizeof(unsigned int)の値は保証されていない。
普通は32bitだけれど、処理系によっては違うこともある。
0025デフォルトの名無しさんNGNG
>>23
charは処理系依存しないと思う。
0026デフォルトの名無しさんNGNG
>>25
charが9ビットの環境は?
0027デフォルトの名無しさんNGNG
>>22
8bitsじゃなくてCHAR_BIT bits
0028デフォルトの名無しさんNGNG
>>26
それはCではありません。
0029デフォルトの名無しさんNGNG
>>28
なんで!?
0030デフォルトの名無しさんNGNG
規格ではCHAR_BITは8が例として挙げられていて、本文中には
絶対値がそれ以上で同じ符号を持っていなければならないことが
定められている。よってC言語ではあらゆる環境においてCHAR_BITは
8以上でなければならない。
0031デフォルトの名無しさんNGNG
>>28
規格が1Byte == 8Bitと決め付けていないからこそCHAR_BITがあるんだろ。
0032デフォルトの名無しさんNGNG
>>31
NULL は 0 と決まっていますが、何か?
0033デフォルトの名無しさんNGNG
sizeof( unsigned int) * 8
sizeof( unsigned int) * CHAR_BITS
結局どっちが正しいの?
0034デフォルトの名無しさんNGNG
>>32
ワラタ
なんだこいつ
0035デフォルトの名無しさんNGNG
>>33
s/CHAR_BITS/CHAR_BIT/
0036デフォルトの名無しさんNGNG
char が常に 8-bits とは限らず、(ただし常に CHAR_BIT bits)
sizeof( unsigned int ) * CHAR_BIT が正解ってこと?
0037デフォルトの名無しさんNGNG
YES
あとsignedかunsignedかで大きさが変わることもない。
0038デフォルトの名無しさんNGNG
CHAR_BIT >= 8も決まっているっぽい。
0039デフォルトの名無しさんNGNG
C言語では
if( ... )
{
    何か一行の処理
}
を
if( ... )
    何か一行の処理
って {} を書かずに書けます?
VC .NET 2003 ではコンパイル通るようなんですが…
0040デフォルトの名無しさんNGNG
>>39
もちろん
0041デフォルトの名無しさんNGNG
色々言葉足らずですな。

書けるかと聞かれれば書ける。
0042デフォルトの名無しさんNGNG
Cの規格上一行で書いても問題ないでしょうか…?
0043デフォルトの名無しさんNGNG
改行を入れる必要はない。
0044デフォルトの名無しさんNGNG
>>42
無いよ
そもそも一行が基
{}は複数行書ける様にブロック化したに過ぎない
0045forNGNG
while
0046ぬNGNG
ぽ
0047ガNGNG
!
0048デフォルトの名無しさんNGNG
>>45-46
氏ねよ蛆虫野郎
0049デフォルトの名無しさんNGNG
uint8_tは8bitと決まっています。
0050デフォルトの名無しさんNGNG
>>49
どの規格で?
0051デフォルトの名無しさんNGNG
オレ流規格
0052デフォルトの名無しさんNGNG
規格票くらい買ってもらえ。
>>50
C99。尤も、必ず定義されているとは限らない。
0053デフォルトの名無しさんNGNG

マタ C99ナンダッテサ
λ・・・・・・
0054デフォルトの名無しさんNGNG
9bitの2の補数を正しくintに変換するにはどう書けばよいでしょうか?

0055デフォルトの名無しさんNGNG
>>54
何度聞けば気がすむんだ?
0056デフォルトの名無しさんNGNG
int main(){ ... }
で、最後に return 0; を書かなくても警告が一つも出ずに普通にコンパイル出来たんですが、
これって VC.NET 2003 に問題アリ?
0057デフォルトの名無しさんNGNG
警告のレベル変えても出ないのか?
0058デフォルトの名無しさんNGNG
レベル 4 でも出ませんが…
0059デフォルトの名無しさんNGNG
なら問題なんだろうね
0060デフォルトの名無しさんNGNG
>>56
それはC++の仕様。ISO/IEC 14882:1998 3.6.1[basic.start.main]-5
省略するとreturn 0;と書いたのと同じことになる。
0061デフォルトの名無しさんNGNG
ここCスレだけど…
って、C++でコンパイルしてたってオチかな。
006260NGNG
だろうな。VC.NET 2003って書いてるし。
0063デフォルトの名無しさんNGNG
http://www.geocities.jp/i035192/forksample.c
上のプログラムの実行結果をもとに
fork関数の使い方と親プロセスと子プロセスの処理について説明せよ

ネットワークアプリケーションとして複数のクライアントからの要求を受け付けるサーバプログラムの例をあげ説明せよ

すみませんが、この2つについて教えてください
0064デフォルトの名無しさんNGNG
>>63
スレ違い
0065デフォルトの名無しさんNGNG
どこのスレがいいですか?
0066デフォルトの名無しさんNGNG
>>65
宿題スレだが、マルチで書いてやがるな
回答は無いものと思え
0067デフォルトの名無しさんNGNG
向こうに誰もいなかったみたいだったので・・・
すみませんでした
0068デフォルトの名無しさんNGNG
>>16
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef struct {
  int x;
  int y;
} POINT;

POINT points[] = {
  {.x = 0, .y = +5}, // 2
  {.x = -3, .y = +3}, // 3
  {.x = -2, .y = -4}, // 4
  {.x = +3, .y = +4}, // 1
};

int comp(const void *, const void *);
void out(POINT *, int);
double sub(POINT *);

int main()
{
  qsort(points, sizeof(points) / sizeof(POINT), sizeof(POINT), comp);
  out(points, sizeof(points) / sizeof(POINT));
  return EXIT_SUCCESS;
}
0069デフォルトの名無しさんNGNG
void out(POINT *p, int n)
{
  int i;

  for (i = 0; i < n; i++) {
    printf("x = %+4d, y = %+4d\n", p[i].x, p[i].y);
  }
}


int comp(const void *a, const void *b)
{
  double a_tan, b_tan;

  a_tan = sub((POINT *)a);
  b_tan = sub((POINT *)b);
  if (a_tan > b_tan)
    return 1;
  else if (a_tan < b_tan)
    return -1;
  else
    return 0;
}
0070デフォルトの名無しさんNGNG
double sub(POINT *p)
{
  if (p->x == 0)
    return INFINITY;
  else
    return abs((double)p-> y / (double)p->x);
}
0071デフォルトの名無しさんNGNG
>>32
> NULL は 0 と決まっていますが、何か?

これは明らかなまちがい。
NULLが0なんじゃなくて、0がNULLなんです。

#define NULL ....で定義されている値が、bitパターンでall0のものでないような処理系で
あっても、ポインターに代入(もしくは比較)される0は、そのナルポインター値に読み替え
られるだけ。
0072デフォルトの名無しさんNGNG
>>52
> 必ず定義されているとは限らない。

いいえされています。
0073デフォルトの名無しさんNGNG
>>71
で、どうして間違いなんだ?
0074デフォルトの名無しさんNGNG
>>72
uint_least8_t と uint_fast8_t は必須。uint8_t は任意。
0075デフォルトの名無しさんNGNG
いや、「任意」じゃないな。スマソ。
8bit 整数のある環境では「定義しなければならない」だな。
0076デフォルトの名無しさんNGNG
#include<stdio.h>
int main(void)
{
char *p="abcde";
char *q="";
int l=0;
int i;
while(*p++){
*(q+0)=*(p+(l++));
}
while(*(q+1)++=*p++) ;
printf("abcde →");
for(i=0;i<l;i++){
printf("%s",*(q+i));
}
return(0);
}


自分でも何をやっているのかわかりません。
abcde→eabcd

となるはずなんですけど・・・
0077デフォルトの名無しさんNGNG
>>71
手元のANSIC言語辞典には、0かそれをviod*にキャストしたものって書いてあるけど。
0078デフォルトの名無しさんNGNG
相手すんな、freeとかNULLとかのお決まりネタで喜ぶ輩なんだから
0079デフォルトの名無しさんNGNG
>>76

#include<stdio.h>
int main(void)
{
char p[]="abcde";
char q[]=" ";
int l=0;
int i;
for(i = 0; i < sizeof(p) / sizeof(char) - 1; i ++) {
q[(i + 1)%(sizeof(p) / sizeof(char) - 1)] = p[i];
}

printf("abcde → %s\n", q);

return(0);
}
0080デフォルトの名無しさんNGNG
/sizeof(char)は余計だろ。
0081デフォルトの名無しさんNGNG
> 0かそれをviod*にキャストしたものって書いてあるけど。

そんな型はありません。

> 手元のANSIC言語辞典には、

そんな本はありません。
0082デフォルトの名無しさんNGNG
main()
{
  char *p = "abcde";
  char *q = " ";
  int n;
  int i;

  n = strlen(p);
  for (i = 0; i < n; i++)
    q[(i + 1) % n] = p[i];
}
0083デフォルトの名無しさんNGNG
>>81
viodは無いけど、本はあるよ。
0084デフォルトの名無しさんNGNG
#ifdef __cplusplus
#define NULL (void*)0
#else
#define NULL 0
#endif
0085デフォルトの名無しさんNGNG
いいえありません。
そもそもそんな言語もない > ANSIC
0086デフォルトの名無しさんNGNG
ここがCスレな事を考えれば、バカバカしいような揚げ足だな。
内容自体には反論せんのか?
0087デフォルトの名無しさんNGNG
>>86
揚げ足つーかvoidのまねをして遊んでいるのでは?
0088死にたいですNGNG
テキストファイルの任意の行を編集したいのですが
サンプルってありませんでしょうか。
0089デフォルトの名無しさんNGNG
ttp://ftp.gnu.org/pub/gnu/emacs/

こんなのどう?
0090デフォルトの名無しさんNGNG
>>86
もともとそういうスレだし。
0091デフォルトの名無しさんNGNG
最近PHPをはじめたんだが、これってかなりCをぱくってるよな
0092デフォルトの名無しさんNGNG
さいきんCをはじめたんだけど、これってかなりDelphiをぱくってるよな
0093デフォルトの名無しさんNGNG
>>80
最適化で消えてくれると思う。
要素数の計算を明示した。
0094デフォルトの名無しさんNGNG
>>92
スレ違い。
誘導
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
009588NGNG
>>89
またまたご冗談を・・・。解凍できません。。
0096デフォルトの名無しさんNGNG
>>95
アホは失せろ
0097デフォルトの名無しさんNGNG
巨大なファイル(数ギガ)のヘッダ部分をカットしようとしています

小規模なファイルなら
メモリに読み込んで
先頭をカット
ファイルに書き出す

なんですけど

巨大なファイルの場合どのようにするのがセオリーなんでしょうか
0098デフォルトの名無しさんNGNG
fopen
fseek
fopen
fread
fwrite
fclose
fclose
0099デフォルトの名無しさんNGNG
先頭部分をスキップして
ファイルに書き出す

サイズ固定ならfseekあたりでポインタを移動させとけ。
010097NGNG
>>98
>>99
やはりそうするしかないですよね

元のファイルをそのままどうにかできないかと思ったんですが・・

ありがとうございました
0101デフォルトの名無しさんNGNG
ftruncate
truncate
0102デフォルトの名無しさんNGNG
matigaeta
0103デフォルトの名無しさんNGNG
NULLについての規格
ISO/IEC 9899:1999
6.3.2.3 Pointers -3
An integer constant expression with the value 0, or such an expression cast
to type void*, is called a null pointer constant. If a null pointer constant is
converted to a pointer type, the resulting pointer, called a null pointer,
is guaranteed to compare unequal to a pointer to any object or function.

7.17 Common definitions <stddef.h> -3
The macros are NULL which expands to an implementation-defined null
pointer constant.
0104デフォルトの名無しさんNGNG
日本語で話せ
0105デフォルトの名無しさんNGNG
英語くらい読め
0106デフォルトの名無しさんNGNG
むしろフランス語キボンヌ
0107103NGNG
>>104
ご希望にお答えする。

ISO/IEC 9899:1999

6.3.2.3 ポインタ -3
値0の整数定数式、またはそのような式を型void*にキャストした式は
ナルポインタ定数と呼ばれる。もしナルポインタ定数がポインタ型に
キャストされると、その結果のポインタはナルポインタと呼ばれ、あらゆる
オブジェクトや関数へのポインタと不等と比較されることが保証されている。

7.17 共通定義 <stddef.h> -3
マクロに次のものがある。NULL これは実装定義のナルポインタ定数に
展開される。
0108デフォルトの名無しさんNGNG
つまり0がNULLなんです。
NULLが0なわけじゃなく。
0109デフォルトの名無しさんNGNG
>>101
それって切るのは後ろなんじゃ
0110109NGNG
あーでもファイルをr+モードで開いてmemmoveみたいなことしたあとににtruncateすればできるか。
ここではスレ違いだけど。
0111デフォルトの名無しさんNGNG
前提も見ような
0112デフォルトの名無しさんNGNG
>>111
は?
0113デフォルトの名無しさんNGNG
memmoveなんかできないサイズだっての
0114デフォルトの名無しさんNGNG
別のファイルにヘッダーより後をコピーするなら対して変わらないでしょ。
0115デフォルトの名無しさんNGNG
memmoveは全部メモリ上に読まなきゃ出来ねーし。
しかもファイルサイズの2倍。
0116デフォルトの名無しさんNGNG
tailコマンド1発で解決じゃん。
0117デフォルトの名無しさんNGNG
truncateとか言ってるのはJava厨か
0118デフォルトの名無しさんNGNG
>>115
ヘッダーサイズくらいの大きさで読み書きを繰り返せばいいじゃない。
0119デフォルトの名無しさんNGNG
その例はとうに出てるだろ。
memmoveだので新たに何を提示してるの?
0120デフォルトの名無しさんNGNG
                \ │ /
                 / ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
               ─( ゚ ∀ ゚ )< くっちゃらはぴはぴ!
                 \_/   \_________
                / │ \
                    ∩ ∧ ∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\∩ ∧ ∧ \( ゚∀゚)< くっちゃらはぴはぴ!
Py厨〜〜〜〜!    >( ゚∀゚ )/ |    / \__________
________/ |    〈 |   |
              / /\_」 / /\」               ̄     / /

0121デフォルトの名無しさんNGNG
>>119
>>98-99が言っているのは新規にファイルを作成することじゃないの?
あとmemmoveじゃなくてmemmove「みたいな」こと。
0122デフォルトの名無しさんNGNG
で、サイズの調整はどうするって?
0123デフォルトの名無しさんNGNG
ヘッダーよりあとを前にずらして、後ろの余った部分をtruncateで切るってこと。
もちろんtruncate(か同じようなもの)がなければできないけど。
0124デフォルトの名無しさんNGNG
結局Java厨か
0125デフォルトの名無しさんNGNG
何しに来てるんだろうな
0126デフォルトの名無しさんNGNG
POSIX準拠のシステムであればtruncateで一発
0127デフォルトの名無しさんNGNG
数GBもあるファイルをたかがヘッダをカットするだけのためにコピーする方がよほどJava厨っぽい
0128デフォルトの名無しさんNGNG
はいはい
0129デフォルトの名無しさんNGNG
俺だったらついでにparserを作るな
0130デフォルトの名無しさんNGNG
やるこた一緒だろ
0131デフォルトの名無しさんNGNG
一時ファイルを作成しなくても済む代わりに途中で異常終了するとファイルが壊れるな。
0132デフォルトの名無しさんNGNG
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
0133デフォルトの名無しさんNGNG
>>>Ruby
0134デフォルトの名無しさんNGNG
Ruby == 5.5ポ
Pearl == 5ポ
Diamond == 4.5ポ
印刷業界の常識です。それにしてもxhml1.1のruby機能はいまひとつだなあ。
0135デフォルトの名無しさんNGNG
Java == ぬるぽ
0136デフォルトの名無しさんNGNG
Null Pointer Assignment == なるぽ
0137デフォルトの名無しさんNGNG
>>106
http://www.gmm.insa-tlse.fr/~montagut/C/Cours/Cours-C-Transparents.pdf
0138デフォルトの名無しさんNGNG
   ∧_∧ 
   ( ・∀・)   
 (( ( ヽ ノ )  
   ノ\(○´  ゴッ
  (_ノ(_\   ∧
     = ()二) <  >_∧∩
            V`Д´)/ ←>>135
                 /
     .  __
       |__|
  ∧_∧ //
  ( ・∀・)/ ・・・
 と    つ
   Y  .ノ
    .  ) ∧_∧∩ ・・・
  _/し'  ( ´∀`)/
           / ←>>136
0139デフォルトの名無しさんNGNG
>>127
>>131
言語が何で関係してくるのか不明だが、
ロールバックできないファイル操作はしてはならない。
0140デフォルトの名無しさんNGNG
FileNotFoundException=ふんど
OutOfMemoryError=おおむ
IoConnectionException=いくぽ
0141デフォルトの名無しさんNGNG
どこから「ぽ」が…
0142デフォルトの名無しさんNGNG
ごめん
0143デフォルトの名無しさんNGNG
ある文字列に改行コードを付加したいのですが
改行コードを付加することは不可能でしょうか。

やりかたも教えていただきたいのですが・・・。
0144デフォルトの名無しさんNGNG
>>143
strcat(ある文字列格納されたバッファ, "\n");
0145デフォルトの名無しさんNGNG
>ロールバックできないファイル操作はしてはならない。

プ
0146デフォルトの名無しさんNGNG
やり直しと言わないところがプだな
0147デフォルトの名無しさんNGNG
(゜Д゜) ハ?
0148デフォルトの名無しさんNGNG
C言語初心者です。
最近、学校で習っていて興味を持ち始めめたので
本を買いたいのですが、初心者に向いていてわかりやすい本はどのようなのものでしょうか?
本屋にいても、たくさんありどれを買おうか迷っています。
0149デフォルトの名無しさんNGNG
推薦図書/必読書のためのスレッド PART 20
http://pc5.2ch.net/test/read.cgi/tech/1097627740/l50
0150デフォルトの名無しさんNGNG
C言語初心者です。課題で迷っています。
strlen関数(文字列の比較する関数)と同じ働きをする関数αを作りたいですがどのように作れば良いのか分かりません。教えて下さい。
ちなみに関数の作り方の構文は知っています。
0151デフォルトの名無しさんNGNG
strlenは文字列の文字数を返す関数で、
比較じゃないぞ、どっちだ。
0152デフォルトの名無しさんNGNG
文字列の比較をするstrlenなんて関数はCにはありません
0153デフォルトの名無しさんNGNG
>>150
宿題は宿題スレへ
0154150NGNG
strcmpの間違いです。新しく作る関数名がstrlenです。
0155デフォルトの名無しさんNGNG
>>154
作るなw
0156デフォルトの名無しさんNGNG
>>150
Cでは名前にギリシャ文字は使用できないのでαという関数を作ることは不可能です。
0157デフォルトの名無しさんNGNG
> 本を買いたいのですが、初心者に向いていてわかりやすい本はどのようなのものでしょうか?
『作ってわかるCプログラミング』 技術評論社 2180円+税
http://www.gihyo.co.jp/book/2001/402231/download/
0158デフォルトの名無しさんNGNG
> strlen関数(文字列の比較する関数)と同じ働きをする関数αを作りたいですが

int α(const char *p)
{
return strlen(p);
}
0159デフォルトの名無しさんNGNG
>>150
αは仮名です。
0160デフォルトの名無しさんNGNG
↑
これで文句つける教員がいたら、おれんところを連れてこい!
0161デフォルトの名無しさんNGNG
int i = 0;
while(*src++) i++;
return i;
0162デフォルトの名無しさんNGNG
>>150はマルチなので放置
0163デフォルトの名無しさんNGNG
Windowsのファイル名を変更したり削除したりする関数ってないのでしょうか?

sysytem関数でrenやdelを使う方法は思いついたのですが・・・。
0164デフォルトの名無しさんNGNG
>>163
http://www.google.co.jp/
0165デフォルトの名無しさんNGNG
mv
0166デフォルトの名無しさんNGNG
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/rename.2.html
0167デフォルトの名無しさんNGNG
ここはCのスレだ、OSのコマンドの事はそういうスレなり板でやれ、
163がWindowsと書いてる事すら読めないオバカさん。
0168デフォルトの名無しさんNGNG
↑ rename.2.html の意味も知らない &&
Windows でも rename() を使える事を知らない
お馬鹿さん
0169デフォルトの名無しさんNGNG
mvは?
0170デフォルトの名無しさんNGNG
>>163
renameとremove
どちらも標準関数
0171デフォルトの名無しさんNGNG
時折、

#define HOGE (1)

とかって記述を見るんだけど、この場合の () ってどんな意味があるの?
無くても副作用は起きないように思うんだけど。
0172デフォルトの名無しさんNGNG
>>171
確かに副作用は起きないな。
0173デフォルトの名無しさんNGNG
括弧をつけなければいけないものだと勘違いしているから。
0174デフォルトの名無しさんNGNG
#define HUGA (1+2)
なら副作用が起きるので、習慣上ただの整数も()で囲む事が多い。
0175171NGNG
gcc の標準ヘッダーにも有ったりするから、何か宗教上の理由とか有るのかと
思ってみたりしてるんだけど、やっぱ、勘違いか習慣の問題ですかね。

ついでに質問なんだけど、同じように関数の型宣言で、

extern hoge(void);

とかの extern も似たような理由かなぁ?関数の記憶クラスで extern は
無いですよね?これも明示的に外部の関数だと示すための習慣とか?
0176デフォルトの名無しさんNGNG
>>175
C FAQくらい見たら?
0177デフォルトの名無しさんNGNG
>>175
なにもつけなければexternをつけたものだとみなされる。
ちょうどlong intのintやautoを略せるのと同じ。
0178175NGNG
>>176
C FAQ 日本語 html 版だと、

1.11:
関数宣言についたexternは何を意味するのか。

のとこ?K&R2 にもどっちでも良いって書かれてるけど、わざわざ付ける理由が
何かと思い。

>>177
175 で戻り値の型が抜けてましたね。extern void hoge(void);
暗黙で extern が付けられるのは、関数内で現れた時と認識していました。
メンテナンスで人のソースをさわってて、マクロで関数宣言に extern を付けたり
外したりしているのとか見ると、余程 extern を付ける理由が合ったのかな?
って思った次第で。作成者に直接聞きたいのはヤマヤマなのですが、既に居ない
ので。
0179デフォルトの名無しさんNGNG
>>175
ヘッダファイルの中で
int a;
みたいなグローバル変数にextern がないと
リンクでエラーになる処理系があったりして
個人的な思想とは無関係に書くしかないことがある

あと C++ が絡むとさらに変な書き方を強いられたりする
0180デフォルトの名無しさんNGNG
なんで変数の話がでてくるの?
0181デフォルトの名無しさんNGNG
>>179
思想も何も、ヘッダファイルに定義書くほうが間違い。
0182デフォルトの名無しさんNGNG
>>180
>>171からの流れを嫁
0183デフォルトの名無しさんNGNG
変数に触れてるのは177だけのようだが、一体どんな流れが。
0184デフォルトの名無しさんNGNG
>>181
ほらな、リンカがらみんとこがわからん香具師がうようよ徘徊してるから・・・
0185デフォルトの名無しさんNGNG
>>183
「何にでも」は宗教かって話に対して参考を示したまで
技術的につっこめない板違いを相手にするのはこれが最後
0186デフォルトの名無しさんNGNG
宗教云々はその前のマクロ定義だろ?
板違い以前に話が見えてないのは自分ではないかな。
0187デフォルトの名無しさんNGNG
>>185
意味わかんねえ
ちゃんと説明してくれんか
0188デフォルトの名無しさんNGNG
>185=184=182か?
0189デフォルトの名無しさんNGNG
しょうもない話だが、
http://www.google.co.jp/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&c2coff=1&q=%83t%83%8D%81%5B%83g%82%CC%8D%C5%91%E5%92l&lr=lang_ja
ひでえ・・
0190デフォルトの名無しさんNGNG
付けなくてもいい関数の場合と、そうでない変数の場合を
同列に挙げて話するのは混乱させるだけだと思うが。
0191デフォルトの名無しさんNGNG
>>189
floatをフロートト書く香具師は少ないってこったね。
0192デフォルトの名無しさんNGNG
逃げやがった
0193171, 175, 178NGNG
うちの会社だと extern 付ける派が圧倒的に多くて、手の届く範囲で付ける
理由を聞いて回ったことがあるんだけど、

「そう教わった。」
「はじめて見たソースがそうなっていた。」
「そういうもんだ。」
「必要だからです。」とリンクの話を始めるヤツ一人。

って回答だったかな。「そう教わった。」から遡ると「はじめて見たソースが」
で終わり。最近の子は VC++ から入るのが多いから、その影響かな。

変数に extern 付け外しするのと似た手法で、自分のソース内にある関数
だけ extern を外してるソースに遭遇してから更に理由が知りたくなった
だけなんだけど。
0194デフォルトの名無しさんNGNG
>>191
いや、もしかして○○?とか聞いてくるくせに、それもない。
0195デフォルトの名無しさんNGNG
>>193
VC++でもつけねぇよ。
つーか、そんなキモイ会社はやめたほうがいいかも。
0196デフォルトの名無しさんNGNG
ようするにスコープ、リンケージを理解してないから、
extern 取り合えず書いて 全てを外部にしているんだろうさ。
そうすりゃリンクエラーでねーからなぁ。
C言語だとまかり通ってるが、C++言語でそれやってるならもうなんていうか
その会社辞めれ。
0197デフォルトの名無しさんNGNG
汗かいてねー奴ら・・・
0198デフォルトの名無しさんNGNG
だから俺はロイター通信を見たいんだっての
http://www.google.co.jp/search?num=50&hl=ja&inlang=ja&ie=Shift_JIS&oe=Shift_JIS&c2coff=1&q=%83%8D%83C%83%5E%81%5B&btnG=Google+%8C%9F%8D%F5&lr=lang_ja

やっぱりこれかい
http://www.google.co.jp/search?num=50&hl=ja&oe=Shift_JIS&inlang=ja&c2coff=1&q=%E3%83%AD%E3%83%BC%E3%82%BF%E3%83%BC&spell=1
0199デフォルトの名無しさんNGNG
>>198
こちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1090324689/
0200デフォルトの名無しさんNGNG
>>199
ただの誤爆に何言ってんだこいつ
0201デフォルトの名無しさんNGNG
技術的につっこめないbogusに居場所はない
0202デフォルトの名無しさんNGNG
逃げた奴が何か言ってるぜwwwwwww
0203デフォルトの名無しさんNGNG
空定義w
0204デフォルトの名無しさんNGNG
sizeofの()みたいに、無くてもいいけどあってはいけないものでもないだろ。
とりあえず外に公開してるインタフェースという目印程度に付けてるけど。
0205デフォルトの名無しさんNGNG
納品条件として文法チェックツールをとおさなきゃいけなくて
そのチェックツールがextren付けないと怒るってのはあったな

必死になってるのは学生か?
0206デフォルトの名無しさんNGNG
externつけてないとリンクできないだろ。
分割コンパイルしたことないのか?
0207デフォルトの名無しさんNGNG
>>206
いや、そうじゃなくて関数プロトタイプだから。
0208デフォルトの名無しさんNGNG
関数そのものでもいらないけど。
0209デフォルトの名無しさんNGNG
馬鹿ばっか
0210デフォルトの名無しさんNGNG
素タブとかドライバとか・・・かかないか。
0211デフォルトの名無しさんNGNG
バーカ
0212デフォルトの名無しさんNGNG
どこまでネタなんだかわからんが
ttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.5.2.html
0213デフォルトの名無しさんNGNG
読んどけ
0214デフォルトの名無しさんNGNG
だから変数のexternじゃねぇって
0215デフォルトの名無しさんNGNG
C始めてから3日もすればわかることだなw
0216デフォルトの名無しさんNGNG
馬鹿ばっか
0217デフォルトの名無しさんNGNG
>>212
当時の記事を鵜呑みにしてマクロ作ってるやついそうだけど、
管理関数作れ、それができないのならせめて構造体使え
と言うところだな。
0218デフォルトの名無しさんNGNG
>>212
論評くらい他人の引用100%じゃなく自分でほざけアフォ低脳
0219Ruby!!!!!!!!NGNG
ぶわぁぁか(プ
0220デフォルトの名無しさんNGNG
プロトタイプもきちんと書けない連中が吼えてもな〜(笑)
0221デフォルトの名無しさんNGNG
なんでおまえら必死なの?
0222デフォルトの名無しさんNGNG
関数の話だって言ってんのにわからねーやつがいるみたいだな
0223デフォルトの名無しさんNGNG
関数にexternつけられるって知らないからじゃないの?
0224デフォルトの名無しさんNGNG
>>223
レベルの低い人は書き込みしないほうがいいよ
0225デフォルトの名無しさんNGNG
こんなもんにレベルの高低が関係あるのか
0226デフォルトの名無しさんNGNG
>>217
theApp ってなんだっけ?
0227デフォルトの名無しさんNGNG
>>223
つけられるけど、つける必要はない。
で、なんでつける必要のないものを付けるの?というのが元々の質問だろ。
0228デフォルトの名無しさんNGNG
>>183
変数に触れてなんかいないぞ。略せるものの例を挙げただけ。
0229デフォルトの名無しさんNGNG
>>228
何故貴方はそこまで馬鹿なんだ!!
0230デフォルトの名無しさんNGNG
>>217の手も使わしてくれなかったうえに、>>212の書き方も許してもらえなかったヨ…(涙)
0231デフォルトの名無しさんNGNG
これが最後とかいいつつ、ムキになって粘着してるのか…
0232デフォルトの名無しさんNGNG
>>229
は?
extern void hoge(void);とvoid hoge(void);は同じなんだが。
0233デフォルトの名無しさんNGNG
>>232
お前さー人の話きかないとかさー挙動不審とかさー覚えが悪いとかさー言われない?
0234デフォルトの名無しさんNGNG
粘着してる奴は何が言いたいんだよ
関数プロトタイプのextern付きと無しで何が違うんだ?
0235デフォルトの名無しさんNGNG
>>233
何を言いたいのかさっぱり分からないんだけど。
あと俺は>>178-207の間は書いていないぞ。
0236デフォルトの名無しさんNGNG
こんなにスレが伸びるほどの話題じゃ無いだろ?バカばっか
0237Ruby!!!!!!!!!!!!!NGNG
ぶぁあああああああああああああああああああああああああああああああああああああああああか
0238デフォルトの名無しさんNGNG
>>237
今日だけは、お前のほうがまともに見えるよ。
0239デフォルトの名無しさんNGNG
間違って覚えているのか、もしくはどうしても関数限定で考えられない>>229=>>223がひとりで粘着しているだけ?
0240223NGNG
>223は>222宛てね。
つまり、関数の話だってのに変数と勘違いしてそうな香具師は、「関数にextern……」と。
#わざわざ書くだけ無駄な気もするが。
0241239NGNG
>>229=>>233の間違い
0242デフォルトの名無しさんNGNG
>>228
例に挙げると触れるはどう区別されるんだ?
つか、しつこすぎ
0243デフォルトの名無しさんNGNG
>>239
ブラウザのログ壊れてレス番ズレてないか?
0244デフォルトの名無しさんNGNG
>>242
だから、Cで文法上書かなくても済む例をあげただけだっての。
変数につけるexternの話なんてしていない。
0245デフォルトの名無しさんNGNG
?
「変数の話の流れ」を主張した182へのレスとして、
「変数に触れているのは」って言ってるんだろ?extern云々への限定はせず。
文句付ける相手間違ってないか。
0246デフォルトの名無しさんNGNG
もうやめにしないか?
0247デフォルトの名無しさんNGNG
>>245
> extern云々への限定はせず。
ああそういうこと・・・すごく紛らわしいんだけど。
0248デフォルトの名無しさんNGNG
いや知らんよ、でもそうだろってだけ。
0249デフォルトの名無しさんNGNG
K&Rでも

「言語仕様的につける必要がなくても、読み手に「そうであること」を明確に主張するために付ける」


そういう用法が明記されている
自分だけしか読まないのであれば本当に必要がないが
0250デフォルトの名無しさんNGNG
なるほど、暴れてたのは177か
0251デフォルトの名無しさんNGNG
>>250
>>178-207の間は書いていないってば。
日本シリーズを見ていた。
0252デフォルトの名無しさんNGNG
GCCで、
typedef struct {
unsigned long a : 1;
unsigned long b : 1;
] FOO;
typedef struct {
unsigned short a : 1;
unsigned short b : 1;
] BAR;
だと、sizeof(FOO)が4になって、sizeof(BAR)が2になるのはなぜ?

ビットフィールドのところのlongかintかshortかcharかって、どのサイズごとにまとめるかを決めるっけ?
そうではなくて、展開されたときの型じゃなかったっけ?
0253デフォルトの名無しさんNGNG
K&Rにも、「関数のプロトタイプ宣言の前のexternは、足の裏の飯粒みたいなものだ」と
書いてあるだろ。
0254デフォルトの名無しさんNGNG
普通なら176で終わってただろうに。
0255デフォルトの名無しさんNGNG
>>252
自問自答?
0256デフォルトの名無しさんNGNG
↑「取らないままでも死にはしないが、取らないときもちわるい」?
0257デフォルトの名無しさんNGNG
>>252
ダミー入れれ
0258デフォルトの名無しさんNGNG
そうじゃなくって、どのサイズごとにまとめるかってのが、
shortって書くかlongって書くかで変わるのは言語仕様なの? っていうことです。
それともgccが勝手にそうしてるだけ?
0259デフォルトの名無しさんNGNG
何だか盛り上がってますね^^^^^^^
0260デフォルトの名無しさんNGNG
179だが結局、空の定義を知らんアフォが暴れて話もへったくれもなくなってるな
よっぽど悔しかったようだが、ちなみに俺の発言は203までだよ
0261デフォルトの名無しさんNGNG
>>250
>179 が引っ込み付かなくなっただけだろ。
…お、再降臨乙。>190 読み返して精進しろ。
0262デフォルトの名無しさんNGNG
>>258
処理系依存かな。元々ビットフィールドもいい加減な仕様しかないし。
0263デフォルトの名無しさんNGNG
繰り返す。空の定義を知らんアフォ。
0264デフォルトの名無しさんNGNG
「空定義」「空の定義」でぐぐってもほとんどヒットしないんですけど。。
0265デフォルトの名無しさんNGNG
> 処理系依存かな。

こいつぼけ。規格票読めよ!
0266デフォルトの名無しさんNGNG
ヒットしようがしまいが関係ない。それは確実に存在し、みんな使っている。
0267デフォルトの名無しさんNGNG
じゃぁ特に知らなくてもいいということですね。
0268デフォルトの名無しさんNGNG
アフォ道に生きるならそれもよし。
0269デフォルトの名無しさんNGNG
嘘っぽいからどうでもいいや。
0270デフォルトの名無しさんNGNG
>ヘッダファイルの中で
>int a;
>みたいなグローバル変数にextern がないと
>リンクでエラーになる処理系があったりして
>>179は上のようなことを書いているので、宣言と定義の違いをわかっていないと思われる。
0271デフォルトの名無しさんNGNG
いえ、関数と変数の違いがわかってないんでしょ
0272デフォルトの名無しさんNGNG
まだやってるー!?(ガビーン
0273デフォルトの名無しさんNGNG
>>179
ファイル"a.c"
-----------------------
int a;
int b(void);

int main(void)
{
 a = 0;
 return b();
}

ファイル"b.c"
-----------------------
int a;
int b(void)
{
 return a;
}
-----------------------

規格では、この2つのファイルをコンパイルしてリンクできると思うけど、
これがリンクエラーになる処理系もあるの?
あと、空の定義って、仮定義(tentative definition)のこと?

The following statements show normal definitions and tentative definitions.

int i4;       /* tentative definition, external linkage */
int i4;       /* valid tentative definition */

えーと、煽りじゃないです。
昔の処理系だとエラーなんでしょうか…
0274デフォルトの名無しさんNGNG
#include
int main(void)
{
int y; int n;
printf("年を西暦で入力してください\n")
scanf("%d",&y);
n=y%4;
if(n != 0) {printf("no leap");}
else(n = 0) { n=y%100; if(n != 0) {printf("leap");}
else { n=y%400; if(n = 0) {printf("leap");}
else {printf("no leap");
}
}
}
return(0);}
うるう年を求めるつもりなんだがコンパイルエラーが出る。
ステートメントにセミコロンが無いとか。どういうことすか?
0275デフォルトの名無しさんNGNG
>>274
一行目から論外だ
聞くときはエラーメッセージ書けよ
0276デフォルトの名無しさんNGNG
エラーメッセージに行数も出てるだろ?
その行で ; が抜けてるだろうが。
あと、#include だけの行は何の冗談?
0277デフォルトの名無しさんNGNG
>>276
コンパイラへのいやがらせ
0278デフォルトの名無しさんNGNG
「空定義」…それは確実に存在し、みんな使っている。
ググっても出てこないが、それでもみんな使っている。
「空定義」…「空定義」…「空定義」…
0279デフォルトの名無しさんNGNG
>>273
>規格では、この2つのファイルをコンパイルしてリンクできると思うけど、
ん?そうか?
>これがリンクエラーになる処理系もあるの?
Microsoft Visual Studio 6.0 C++
0280デフォルトの名無しさんNGNG
兄弟、落ち着こうぜ
.cppじゃなく.cだ
0281279NGNG
…orz=3
0282デフォルトの名無しさんNGNG
>>278
聞き方憶えような、教えて君
今んとこ答える動機より
答えない動機の方が強いよ
オマエのそのざまが面白い
0283デフォルトの名無しさんNGNG
またキターヽ(´Д`;)ノ
0284デフォルトの名無しさんNGNG

          /\
        /    \/\
        |\   /    \/\
      /\  \ |\    /    \/\
    /    \  |  \  |\    /    \/\
    |\    /  .|       \  |\    /    \ /\
   / \ \/    |             \  |\   /    \/\
 /    \ |    .|                 \ |\    /    \/\
 |\    /|     |                      \|\    /    \
 |  \ //\                             \ /        \
 |   |/    \                      ウワァン!  /\          >
 |   \    /|                 ヽ(`Д´)ノ  /    \      / .|
 |     \ //\               / (  )  \       \   /    |
 |      |/   \        /\ /    < ヽミ3 \     /| /      |
 |      \    /|   /\/    \      \    /|   /          |
 |        \ //\/    \     \     /|  /                 |
 |         |/   \     \    / | /                    |
 |         \     \   / | /                         .|
 |           \    /| /                              .|
 |            \ /                                  |
 |              .|                                   .|
               |
               |
               |
0285デフォルトの名無しさんNGNG
外部リンケージエラー。
0286デフォルトの名無しさんNGNG
>>284
EscherのAAに正直感動した。
0287デフォルトの名無しさんNGNG
スレ違いもいいとこ
0288デフォルトの名無しさんNGNG
UNIX環境で開発したあるプログラムを、UNIX上でコンパイルして実行すると正常に動作するのですが
windows上でコンパイルして動かすとなぜか途中で強制終了されてしまいます。
コンパイラはどちらもgccで、コンパイル自体はwindowsでもエラー無く通過します。

一応デバッグは試みたのですが、なにしろコンパイルは通ってしまうので原因がよくわかりません。
プログラムが停止するのは動的に割り当てたメモリのアドレスを引き渡す操作をするところなので、
そこでなんらかのエラーが発生しているような気もします。
原因、及び改善策としてはどのようなものが考えられるでしょうか。
0289デフォルトの名無しさんNGNG
>>288
一応疑ってみるポイント。
・エンディアンに依存したコード。
・解放したメモリの再利用。
・スタックオーバーフロー。

まぁなんだ、余裕があるなら関数一つずつ入力を変化させながらチェックするのがいいのだけれど。
#そのためのツールに、バウンドチェッカー(だっけ?)なんて言うのもあるが、それはそれで手間が掛かる。
0290デフォルトの名無しさんNGNG
任意の構造体を関数に渡してその型に関わらずメンバに値を格納していく、
といった関数をC言語で作りたいのですが、何かいい方法はないでしょうか?
簡単なものから作ろうと思い、メンバの型とサイズを一定にしたプログラムを
一応つくってみたのですが、
「エラー E2453 t_ka.cpp 19: 'void' 型のサイズは未知あるいはゼロ(関数 t_kansu(int,int,void *) )」
と出てしまいます。(Borland C++ 5.5)
回避方法はないでしょうか?

#include <stdio.h>
#include <string.h>
#define KYOUTU_LEN  10
/* 構造体 */
typedef struct {
  char a[KYOUTU_LEN];
  char b[KYOUTU_LEN];
  char c[KYOUTU_LEN];
}  KOUZOUTAI;
/* 作りたい関数 */
void t_kansu(int kata_len, int memba_num, void * t_kouzou){
  for(int i = 0; i < memba_num; i++)  {
    if(i) {memcpy(t_kouzou + (i * KYOUTU_LEN) + 1,"あいう",KYOUTU_LEN); }
    else { memcpy(t_kouzou + i,"あいう",KYOUTU_LEN); }
  }
}
/* 呼び出し側 */
main(){
  KOUZOUTAI  kouzoutai;
  memset(&kouzoutai,NULL,sizeof(KOUZOUTAI));
  /* 構造体の型(バイト数)、メンバ数、構造体の先頭アドレスを渡す */
  t_kansu(sizeof(KOUZOUTAI),3,&kouzoutai);
  return 0;
}
0291デフォルトの名無しさんNGNG
質問:テキストファイルの最初100文字を読み飛ばすにはどうしたら良いでしょうか?

Perlで書いたプログラムを(処理速度の関係で)勉強しながらC言語へ書き換えています.
fseekとかを色々といじっていますが中々うまくいきません.

どの(標準)関数をどのように使えば良いか,お知恵を拝借できればと思います.
よろしくお願いします.

--
WindowsXP + SP2
VC++ 6
0292デフォルトの名無しさんNGNG
char*にキャストしてから+したまえ、希望のことが出来る。

まぁ、お勧めは出来ないが。
0293デフォルトの名無しさんNGNG
>>291

FILE * fp = fopen("テキストファイル", "r");
fseek(fp, 100, SEEK_SET);

もし仮に、2バイト文字も一文字として読み飛ばしたいならこれではダメ。
その場合、1バイトずつ読みながら2バイト文字か1バイト文字かを判断する必要がある。
また、改行コードの余計なお世話が問題になるようなら"r"ではなく"rb"で開いた方がいいかも知らん。
0294デフォルトの名無しさんNGNG
C言語でこういうプログラムを組みたいのですがどうしたらよいでしょうか?
たとえば4.1 5.1 6.2 7.5・・・・と書かれたテキストファイルを読み込んで二つずつ足して
9.2 13.7・・・・ とテキストファイルに書き込むプログラムを作りたいです
初心者なのでファイルの読み込みとかよくわからないのでお教えください。一週間前から明解C言語で勉強しています
がまだまださっぱりの超初心者ですが宜敷お願いいたします
0295デフォルトの名無しさんNGNG
なんだよ、このスレ、日本語だらけじゃん。全部C言語で記述してあるとか
わくわくしながら開いたのに・・・

まあ、書いてあることは日本語だったとしてもさっぱりわやですわ。
0296デフォルトの名無しさんNGNG
>>294
背伸びをするのはその明解C言語というやつを読み終わってからでも遅くないんじゃないか?
0297デフォルトの名無しさんNGNG
>>294
/* エラー処理は割愛 */
double ta;
double tb;
FILE * fpIn = fopen("inFile", "r");
FILE * fpOut = fopen("outFile", "w");
while (fscanf(fpIn, "%lg%lg", & ta, & tb) == 2) {
fprintf(fpOut, "%g ", ta + tb);
}
fclose(fpIn);
fclose(fpOut);
0298デフォルトの名無しさんNGNG
>>290
void*じゃなくてKOUZOUTAI*を使う。
0299デフォルトの名無しさんNGNG
>>293
レスありがとうございますm(_ _)m
SEEK_SETというのがミソでしたか.

おっしゃるとおり,改行コードが悪さをしているようです.
もう少し色々と試してみたいと思います.
どうしようもなくなったら,またカキコするかと思いますがよろしくお願いします.
0300デフォルトの名無しさんNGNG
#include <stdio.h>

int main( int argc, char *argv[] ){
printf( ">>295以下、C言語で語ってます。>>1000の方閉じてくださいね♪
0301デフォルトの名無しさんNGNG
Cの文字列は複数行にまたがれないよ(はーと)
0302デフォルトの名無しさんNGNG
">>301"
"これならいい?"
0303デフォルトの名無しさんNGNG
>>290
a, b, cの型のサイズやメンバの間のパディング(あるいは各
メンバの先頭からのオフセット)も知らせる必要がある。

そしてそんなもんが全部分かるってことは型がなんだか
わかってるんだから普通にコピーしたほうがいいと思われる。

任意の構造体なんかを相手にするのではなく
自分のコピーの仕方を自分が知ってる構造体を作った方がいいのでは。
0304291=299NGNG
>>293
改行コードを2文字(CR+LF)として,テキストモードで開いたらうまくいきました.
ありがとうございましたm(_ _)m

//Perlしか書けないおかげで変数の宣言を忘れてたりと,色々と苦労していますががんばりたいと思います.
//今まで3度Cに挫折_| ̄|○

>>301
/* これでは?
0305デフォルトの名無しさんNGNG
>>289
回答ありがとうございます。
実行のかなり最初の方でストップしてますのでオーバーフローでは無いような気がします。最初のメモリ割り当て時ですし。
ちなみに割り当てたメモリは解放してないので(おい)再利用でも無さそうですね、
エンディアンに依存したコードかどうかはよくわかりませんが…一般的な線形リストの構造体セルを割り当てる操作のところです。

発狂しそうなぐらい汚いプログラムなのでどこにエラーが潜んでるかわからないんですよね・・・
あぁアホの作ったプログラムのデバッグはいやだ
0306290NGNG
>>292 >>298 >>303
アドバイスありがとうございます。
任意の構造体を関数に渡して・・・・というのも、そんなライブラリがあったら
便利だな、と思ったからなんです。
無理かもしれないけど、もう少し色々考えてやってみます。
0307デフォルトの名無しさんNGNG
>>290
きっとC++を勉強すると幸せになれるよ。
0308デフォルトの名無しさんNGNG
>>305
そうそう、環境の違いによる影響も考慮すること。
・まさかと思うが設定ファイルはあるか
・OSに依存したファイルを当てにしていないか
・漢字コードはどうか
これらは大抵、文字列が絡むので全ての文字列操作をチェックできれば大分見通しがよくなるかと。
0309デフォルトの名無しさんNGNG
ステップ実行とかしてる?
環境依存よりスタックかヒープ破壊してる確率のほうが高そうだけど。
0310デフォルトの名無しさんNGNG
前の環境がたまたまうまく動いていただけの予感
0311288NGNG
>>308
漢字コードは大丈夫です。ヘッダなどの必要ファイルもあります。

OSに依存したファイルはどうでしょうか…
でも恐らくエラー部分では使っていないと思います。
上でも書いたように単なる線形リストの構造体セル追加操作なので。
0312288NGNG
>>309
してみました。その心配は無さそうです
0313デフォルトの名無しさんNGNG
intも必要ないな

黙っていればintとされる


わけだからint書く必要なし

わりに書いてるこの矛盾
0314デフォルトの名無しさんNGNG
次のコードで動的確保した領域にscanf()から値を格納したいんですが
デバッグすると/*6*/行目のscanf()での入力待ちが起こらずそのまま
/*7*/行目に移行していまいます。バッファの指定を&p->category[0]
としても変らずでした。原因はどこでしょうか?
struct UNKO {
int flag;
char time[30];
char category[50];
int price;
struct UNKO *next;
};



/*1*/ printf("%s ", menu[0]);
/*2*/ scanf("%d", &p->flag);

/*3*/ printf("%s ", menu[1]);
/*4*/ scanf("%s", p->time);

/*5*/ printf("%s ", menu[2]);
/*6*/ scanf("%s", p->category);

/*7*/ printf("%s\n", menu[3]);
/*8*/ scanf("%d", &p->price);
0315デフォルトの名無しさんNGNG
scanf()を捨てて、fgets()+sscanf()にしてみよう。
0316314NGNG
6行目の指定子の後ろにスペース入れるとちゃんと働きました。
どなたか説明願います。
/*6*/ scanf("%s ", p->category);
0317デフォルトの名無しさんNGNG
scanf はスペースを読んでくれいなからでっす。
0318デフォルトの名無しさんNGNG
> 黙っていればintとされる

いいえ、規格上それはないです。ちゃんと規格票読め ぼけ。
それがOKだったのは15年前のC89のときまで。
0319デフォルトの名無しさんNGNG
だってC99なんかまともに使われてないし・・・
0320デフォルトの名無しさんNGNG
>>319
部分的には前から結構使われているけれどね。
0321デフォルトの名無しさんNGNG
いや、ふつうC99.
0322デフォルトの名無しさんNGNG
>>321
お薦めのC99コンパイラは?
0323デフォルトの名無しさんNGNG
C89つかおうと思ったらわざわざオプション指定しないといけないよ。
GCCだってデフォルトではGNU形式だし。
0324デフォルトの名無しさんNGNG
>>316
scanf()は、指定子が%sで終了した場合文字列以降に入力した空白(改行文字を含む)を読み飛ばさない。
そして、次のscanf()がその空白文字を処理しようとしてしまう。
%sの後に空白があれば、文字列以降に入力した空白を読み飛ばしてから終了するので次のscanf()に影響しない。
0325デフォルトの名無しさんNGNG
数値を文字列に変えるにはどうしたらよいのでしょうか?atofの逆バージョンを探しているのですが。
0326デフォルトの名無しさんNGNG
sprintf()
0327デフォルトの名無しさんNGNG
ふつうC99
0328デフォルトの名無しさんNGNG
C99使おうと思ってもオプション指定必要だけどね。
0329デフォルトの名無しさんNGNG
gccなんかつかうなよ。ちゃんとC99フル対応のコンパイラー使え。
0330デフォルトの名無しさんNGNG
Ruby使え!Ruby最高!Rubyのおかげでガンが治った!Ruby!!!!!!!!!!
0331デフォルトの名無しさんNGNG
お薦めのC99コンパイラは?
0332デフォルトの名無しさんNGNG
>>329
あのね、GCCだってオプションで-std=c99とすればC99としてコンパイルできる。
ちゃんと対応しているじゃないか。
デフォルトが独自形式なんだ。
VC++だってそうじゃないか。
0333デフォルトの名無しさんNGNG
>>318
規格票って何?規格書の事?
0334デフォルトの名無しさんNGNG
hp も Sun も、C99 対応済んでないんじゃなかったか?
0335デフォルトの名無しさんNGNG
C99対応していないコンパイラなんて、かなり古いバージョンのコンパイラだけだよね。
メジャーなものはほとんど対応済み。
0336デフォルトの名無しさんNGNG
「フル対応」はしていないだけ。ほぼ99%は対応している > メイジャーなの

> あのね、GCCだってオプションで-std=c99とすればC99としてコンパイルできる。

これも同様で、「ほぼ対応」なだけで完全に全部満たしているわけではない。
0337デフォルトの名無しさんNGNG
> 規格書の事?

そんなものはありません。
0338デフォルトの名無しさんNGNG
要はISO/IEC 9899:1999のことだろ?
0339デフォルトの名無しさんNGNG
あるファイルを、
fopen(filename,"rb"); バイナリーモードで開いてます。
そして、readBuffer というところに,
fgetc でとってきた値を、どんどん入れ込みました。

そして、先頭から、75 75 69 64 とかいうコードが出てきたところのポインタを
調べたいのですが、いままで、テキストモードでしかファイルを開いたことが無いので
strstr(文字列の検索)でしか使ったことがないのですが、

バイナリコードの検索方法は、どうすればいいのでしょうか?
0340デフォルトの名無しさんNGNG
>>339
・readBufferの末尾(詰め込んだ直後)に'\0'を入れておいて、strstr(readBuffer, "uuid");
・char * p = memchr(readBuffer, 0x75, 詰め込んだ長さ)してからmemcmp(p + 1, "uid", 3);
・その他
0341デフォルトの名無しさんNGNG
>>339
http://www.amazon.co.jp/exec/obidos/ASIN/4874085008/
0342デフォルトの名無しさんNGNG
>339


if( readBuffer[0] == 0x75 && readBuffer[1] == 0x75 && readBuffer[2] == 0x69 && readBUffer[3] == 0x64 )
retcd = 0;
elseif( readBuffer[1] == 0x75 && readBuffer[2] == 0x75 && readBuffer[3] == 0x69 && readBUffer[4] == 0x64 )
retc = 1;
elseif(readBuffer[2] == 0x75 && readBuffer[3] == 0x75 && readBuffer[4] == 0x69 && readBUffer[5] == 0x64 )
retc = 2;

:
:
つかれた
0343デフォルトの名無しさんNGNG
K&Rの本に出てくるんですが、式の中での
(*++argv)[0]
*++argv[0]
の読み方がよく分かりません。よろしくお願いします。
0344デフォルトの名無しさんNGNG
>>343
(*++argv)[0]
  ||
(*(++argv))[0]

*++argv[0]
  ||
*++(argv[0])
  ||
*(++(argv[0]))
0345デフォルトの名無しさんNGNG
>>340
readBufferの中に'\0'があり、その後ろに"uuid"があると
一つ目の方法では発見できない。
0346339NGNG
>345

ありがとうございます。
今いろいろと格闘中です。

あと2,3時間考えてまとめてみます。
0347デフォルトの名無しさんNGNG
あーそうかい。>340は参考にならなかったと。
0348346NGNG
>347
書き方がまずくてすみませんでした。
大変参考になります。

ただ、別のくだらないことでつまづいてるので、そこをまとめてから
結果を出したいと思って書いただけです。
0349デフォルトの名無しさんNGNG
すいません。質問です。
アンパンマンのあんってつぶあんなんですか?
こしあんなんですか?
ご教授頂ければ幸いです。
0350デフォルトの名無しさんNGNG
>>349
関数ポインタを使え。
0351デフォルトの名無しさんNGNG
>>349
板違い
0352デフォルトの名無しさんNGNG
>>350
関数ポインタを使ったら解決しました。
ありがとうございました。
0353デフォルトの名無しさんNGNG
bool isTsubu();
{
bool (*p)() = &isTsubu;
(*p)();
}
0354デフォルトの名無しさんNGNG
C言語でプログラムしたいんですけども、

ドメイン名からIPアドレスを得るのに
gethostbyName()関数を使うとゆうことは
わかってるんでけど、

DNSサーバーをいろいろ変更して
取得をしたんです。
nslookupでゆうところの、
【server ○○○.co.jp】
に該当するプログラムをC言語では
どのようにすればいいのでしょうか?

BINDのライブラリルーチンを利用しようと
思って説明書をよんでも
さっぱりわかりません。

わかる方、助言お願いします。
035522NGNG
sizeof( unsigned int ) * CHAR_BIT
が正しいという結論になりましたが、
http://www.bohyoh.com/CandCPP/FAQ/FAQ00018.html
ということのようです。

だから何だと言われそうですが…
0356デフォルトの名無しさんNGNG
>>355
だけどそのために関数を書くのもちょっと… と思ってしまったり。
0357デフォルトの名無しさんNGNG
>>354
nslookupのソースコード見れ。
0358デフォルトの名無しさんNGNG
いいえ、それは誤りです。
括弧のうちがわに空白があいています。
0359デフォルトの名無しさんNGNG
>>358
ほんとだ!

教えてくれてありが�d
0360デフォルトの名無しさんNGNG
>>354
nslookup使うのが簡単。
0361デフォルトの名無しさんNGNG
getenv()で得た値を弄くったりしても大丈夫ですか?

#include <stdlib.h>
void aaa(char * bbb) {
if (!(bbb = getenv("TEST")) *bbb = 'c'; return;
}

main() {
char * ccc;
aaa(ccc);
*ccc = 'b';
}
0362デフォルトの名無しさんNGNG
>>361
ダメ
0363デフォルトの名無しさんNGNG
>354
DNSクライアントを作ってみよう
ttp://x68000.q-e-d.net/~68user/net/
0364デフォルトの名無しさんNGNG
>>362
ありがとうございます
0365デフォルトの名無しさんNGNG
>>361
void aaa(char ** bbb) {
if (!(*bbb = getenv("TEST")) **bbb = 'c'; return;
}
main() {
char * ccc;
aaa(&ccc);
*ccc = 'b';
}
0366デフォルトの名無しさんNGNG
gcc -I /home hoge.c
と書くべきか、
gcc -I/home hoge.c
と書くべきか、
どっちなんでしょう。
0367デフォルトの名無しさんNGNG
後者
0368デフォルトの名無しさんNGNG
> http://www.bohyoh.com/CandCPP/FAQ/index.html
さすが柴田まぬけだな。

> for文の( )内で宣言された識別子の有効範囲はどうなっていますか。

これについてC++についてしかかかれていないぞ!
0369暴妖NGNG
少しずつC99izeしているところだ。焦るな。
0370デフォルトの名無しさんNGNG
じゃあこれはどうだ? C99は関係ないぞ。

> http://www.bohyoh.com/CandCPP/FAQ/FAQ00083.html

こいつは「存在するけどreadでオープンできない」ファイルの存在とかをしらない
のだろうか? きっと、ファイルの属性は、ReadOnlyとHiddlenとSystemとArchiveの4種類
しかないと思っているWindows厨にちがいない。
0371デフォルトの名無しさんNGNG
こういういいかげんなやつほど粗製濫造で本をだしまくるんだよなあ。
困ったもんだ。それを読むボケがいるからだが。
0372デフォルトの名無しさんNGNG
> http://www.bohyoh.com/CandCPP/FAQ/FAQ00047.html

これはgccでwarningでるぞ!
warningでるようなコードをサンプルに載せるなよ! ぼけ
0373デフォルトの名無しさんNGNG
3.3.5なら出ない(-Wall -ansi(or -std=c99) -pedanticつきで)。
0374デフォルトの名無しさんNGNG
> http://www.bohyoh.com/CandCPP/FAQ/FAQ00005.html
> 256種類にEOFを加えた257種類ということになります。これだとchar型では表現できません。

これも不正確だ。「できません」じゃねーだろ ぼけ
できる保証がないだけだ。charで最小限表現しわけられなればいけないのが256種類だから。
それ以上表せるchar型だっていくらだって存在はする。ちゃんと正しい日本語使え!
0375デフォルトの名無しさんNGNG
> 3.3.5なら出ない

そんな古いヴァージョン使うな ぼけ
0376デフォルトの名無しさんNGNG
>>339
unsigned int readBuffer = 0;
unsigned char code = 0;
int counter;
fp = fopen(filename,"rb");
for (counter = 0; counter < 4; counter++) {
fread(code, 1, 1, fp);
readBuffer |= (code << 24 - (8 * counter));
}
//75 75 69 64 を見つけるまで続ける。
while (readBuffer != 0x4b4b4540) {
fread(code, 1, 1, fp);
readBuffer <<= 8;
readBuffer |= code;
}
fread(code, 1, 1, fp);

これで操作したい1バイトの情報が code に格納されてるはず。バイナリファイル
を扱うなら fread() とビット演算を覚えた方がいいと思う。それで1バイトずつ
の操作ならできるようになるから。1ビット単位で扱う場合は
unsigned int readBuffer[2] = { 0, 0};
int bit_count[2] = { 0, 0};
といったような工夫も必要になってくるけど。あくまで一例だけどね。

* fread(code, 1 , 1, fp); //fpのファイルから1バイト×1要素をcodeに格能
0377デフォルトの名無しさんNGNG
ハァ?
0378デフォルトの名無しさんNGNG
> http://www.bohyoh.com/CandCPP/FAQ/FAQ00051.html
> 二つの宣言をまとめて、以下のように一度に宣言することもできます。

> struct node {
> char name[20]; /* 名前 */
> struct node *next; /* 後続ノードへのポインタ */
> } Node;

こりゃどうみても間違いだろう! ぼけ
typedefが抜けている。これじゃあ最後のNodeは変数名になってしまうぞ。

あたまわるいなー > 柴田
0379デフォルトの名無しさんNGNG
typo
0380デフォルトの名無しさんNGNG
typodef !
0381デフォルトの名無しさんNGNG
そんな私は日下部先生の本を読んで勉強しました。

やはり信頼できる内容で選ばないと > Cの本
0382デフォルトの名無しさんNGNG
>>380
typoを定義しないでください
0383デフォルトの名無しさんNGNG
私は猫でも〜で勉強しました。

なので、自分の知識に所々不安が残ります。
0384デフォルトの名無しさんNGNG
すぐ人のせいにするw
0385デフォルトの名無しさんNGNG
やはり「C言語」なんて書いてある本はだめだな。
0386デフォルトの名無しさんNGNG
>>376
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
        ^^^^^^^^^^^^^
0387デフォルトの名無しさんNGNG
>>386
言いたいことがあるならはっきりと言え。
0388Ruby!!!!!!!!!!!!!!!!!NGNG
言わなきゃ若蘭の香wwwwwwwwwwwwwwwww
0389376NGNG
ごめんw フツーに間違えたw
fread(); の行は全て
fread(&code, 1, 1, fp); に変更ってことでw
0390デフォルトの名無しさんNGNG
>>389
生き恥晒してないで逝っとけ。
0391デフォルトの名無しさんNGNG
サンプル見てて思ったんですが、階乗等、再帰を使わずとも簡単に書ける関数を再帰を使って書く利点ってあるんですか?
0392デフォルトの名無しさんNGNG
ありません。
0393デフォルトの名無しさんNGNG
コードが短くなる利点はあります。
0394デフォルトの名無しさんNGNG
>>391
再帰の説明はとりあえずテールリカージョンから始める
Hello, world! と表示させるのにわざわざ cc がいらないのと同じ
0395デフォルトの名無しさんNGNG
cc?
0396デフォルトの名無しさんNGNG
Carbon Copy
0397デフォルトの名無しさんNGNG
Cubic Centimeter
0398デフォルトの名無しさんNGNG
Carbon Copy ?
0399デフォルトの名無しさんNGNG
Carbon Copy !
0400デフォルトの名無しさんNGNG
柴田だめすぎ
0401デフォルトの名無しさんNGNG
> そんな私は日下部先生の本を読んで勉強しました。

『作ってわかるCプログラミング』 技術評論社 だな?
そんなにいい本か? 近所の書店では見かけないのだが。
(秋葉原の書店で見かけたときは表紙しか見なかったし...)
0402デフォルトの名無しさんNGNG
Card Capture
0403デフォルトの名無しさんNGNG
> http://mixi.jp/show_friend.pl?id=5996
> 関係:先生
> 見捨てず最後まで教えてくれるのです!!
> 美味しい物をご馳走してくれます。笑。

> 関係:せんせー
> 1年の時にプログラムを教えてくれました。
> 何だかんだ言って面倒見のいい方で、質問したら最後まで教えてくれます。

「最後」ってどこだ?
0404デフォルトの名無しさんNGNG
全ての疑問が解けるまで
0405デフォルトの名無しさんNGNG
なんかエッチだな... > 最後まで
0406デフォルトの名無しさんNGNG
いいなあ > 女子学生getしまくり
0407デフォルトの名無しさんNGNG
C言語のリファレンス本で、本屋にやたらぶあついのがあったんだけど
買ったほうがいいのかな?
0408デフォルトの名無しさんNGNG
厚ければいいのか?
国語辞典はともかく、広辞苑を使う必要がそんなにあるか?
0409デフォルトの名無しさんNGNG
>>408 言わんとすることが解りました。買わないでおくことにします。レス�dクスです
0410デフォルトの名無しさんNGNG
ヴェガ!!

だなあ


プロフェッショノー気取っても
分からないことも数多く出るんだよ
だからみんな参考書を片手にガタガタ打ってるんだよ

習得の際にも役に立つし、
仕事でふと度忘れしたときにも役に立つ
だから分厚い本である必要はないが
詳細すぎるほど詳細に記した本があるなら
それを迷わず買わ「ねばならない」

全ての関数を詳細に説明した、網羅したものが望ましい
0411デフォルトの名無しさんNGNG
広辞苑は第3版は昼寝にちょうどいいが、
第4版は厚さがだめ、だとvoid先生がおっしゃっていました。
0412デフォルトの名無しさんNGNG
> 分からないことも数多く出るんだよ

おれ、出てこないよ。
0413デフォルトの名無しさんNGNG
> 全ての関数を詳細に説明した、網羅したものが望ましい

man読め > ぼけ
0414デフォルトの名無しさんNGNG
もしくは /usr/src/libc
0415デフォルトの名無しさんNGNG
関数が全部かいてある本がほしい、とかいうのはぼけすぎだ。
0416デフォルトの名無しさんNGNG
.         ,,-" ,,‐"   ヽ、;:-1''´      ヽ /::::::
       ,,-" i ,,"       l    ,      `、ゝ、::::
.     ,,-" . /,,''        l /        ヾ  `
.    ,,-   ヽ''__  ::ヽ    l,/          '、
    ,."     ,,゙ヽ, ミ、、:::}    l     _,,----ミ  '、
   ,.'     ,'  i ヽミ'.、、   /.l  _,,,、-;=;;==‐,z   '、
  ,′    ,'  l  ヽ`='ゞ、ヽー'イ''~ヽー`='--イ    '
.  '      l!   l   //    l! ヽ、         .'    参 ・ 考 ・ 書 !
 ,′     l!   ',    /    ゙i   ヽ、       ' 
. ;      l!    '、  /      ゙i         /:. i それが俺たちピログラモヮーが共有した
. ;      .l!     '、 /       ゙i        /::: l
. i.      l!     'y        ゙i      /:::  i              ただひとつの正義のはず
  ',      ',     く __ _      ゙i     i:::.  i゙
  '、     ',      ヽ        ゙i     i::: /
.        ',      '、 ヽ-‐‐‐‐---一
.        ',       '、`ー---
         '、      >,             .,- ゙
             /;;;;;'、          .,-"
           , ';;;;;;;;;;;;;;'、        ,-´:::
0417デフォルトの名無しさんNGNG
> ひとつの正義のはず

社長だもんね
0418デフォルトの名無しさんNGNG
そりゃ大したことをしないダボはわからんことなぞ出てこん
0419デフォルトの名無しさんNGNG
っていうかCみたいに言語仕様の小さいものぐらいは数日で把握しきれる。
それさえも「ときどきわからないことがでてくる」ようなやつが
ぷろふぇっしょなるを自称するとは、まぬけすぎー
0420デフォルトの名無しさんNGNG
│
│
│
│
│            _
│         /  ̄   ̄ \
│        /、          ヽ
J         |・ |―-、       |
         q -´ 二 ヽ      |
        ノ_ ー  |      |
         \. ̄`  |      /
         O===== |
        /          |
        /    /      |
0421デフォルトの名無しさんNGNG
ぬゑぽ!!!

0422デフォルトの名無しさんNGNG
全ての関数ですか。
0423デフォルトの名無しさんNGNG
さて、またあぼ〜んいくか
面積浪費のクソレス野郎氏ね
0424デフォルトの名無しさんNGNG
明示的にポインタ変数にnullを代入したいときってどうするのが
一番いいんですか?
0425デフォルトの名無しさんNGNG
galtu = NULL;
0426デフォルトの名無しさんNGNG
> 明示的に

そんな日本語はない。
0427デフォルトの名無しさんNGNG
へぇw
0428デフォルトの名無しさんNGNG
明示〜はっきり分かるように示すこと。

明示的〜はっきり分かるように示すこと、みたいな
                           (的)
0429デフォルトの名無しさんNGNG
stdlib.hをインクルードしないとNULLが使えないみたいですが、
#define NULL 0
とかしてもいいですか?
0430デフォルトの名無しさんNGNG
いいよ。
0431デフォルトの名無しさんNGNG
ありがとうございます。
0432デフォルトの名無しさんNGNG
w
0433デフォルトの名無しさんNGNG
良いわけねえだろw
0434デフォルトの名無しさんNGNG
C++ ならいいんでは?
C ではだめなんだっけ。
0435デフォルトの名無しさんNGNG
"明示的に" の検索結果のうち 日本語のページ 約 133,000 件中 1 - 50 件目 (0.19 秒)

存在しない日本語にしちゃあ、誤用が多いようで。
0436デフォルトの名無しさんNGNG
数だけかぞえればいいのだったら、どんな誤用も正しいことになるぞ ぼけ
0437デフォルトの名無しさんNGNG
「明示的」はよく使われる。
たぶん、どこぞの誰かが和訳のときに用いたのが広まったんだろ。
0438デフォルトの名無しさんNGNG
>>436
じゃあゴキブリって言うなよ
0439デフォルトの名無しさんNGNG
>>434
いいや、どっちもダメではない。
ただ、わざわざdefineするほどのものでもない。
p=0; とか書いたって全然問題ないだろ?
0440デフォルトの名無しさんNGNG
いえ。NULLってかきなさい。
0441デフォルトの名無しさんNGNG
#ifdef __cplusplus
#define NULL 0
#else
#define NULL (void*)0
#endif
0442デフォルトの名無しさんNGNG
(void*)は余分です
0443デフォルトの名無しさんNGNG
とりあえずVC++のNULLはこうなってるな

/* Define NULL pointer value */

#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
0444デフォルトの名無しさんNGNG
>>437
言葉ってのはそもそも誰かが最初に使わなきゃ存在しないものなんだから、
そりゃぁ誰かが使ったんだろうな。
〜〜的にってのは便利だから(俺的にーとか)同地多発的に発生したんだろ。
そういう新しい言葉を受け入れられなくなったらもうおっさんかもな。
0445デフォルトの名無しさんNGNG
gccだと0でも文句言われないな
lintもおっけー
0446デフォルトの名無しさんNGNG
> 言葉ってのはそもそも誰かが最初に使わなきゃ存在しないものなんだから

いいわけにすぎない。

> gccだと0でも文句言われないな

gccにかぎらずCはすべてそう。
0447デフォルトの名無しさんNGNG
必至だな
0448デフォルトの名無しさんNGNG
誤用にも関わらず広がってしまい、いかにも正しい言葉であるかのように
振る舞っている言葉はどうするんですか?
0449デフォルトの名無しさんNGNG
>>448
そのうち消えるか、正しい(藁)日本語として認知されるようになるでしょ。
今正しいと思って使ってる言葉だってもともとはそういう風に進化して来たんだから。
0450デフォルトの名無しさんNGNG
> 日本語として認知されるようになるでしょ

なりません。
0451デフォルトの名無しさんNGNG
正しい日本語と正しくない日本語の区別は誰が決めてるんですか?>おっさん
0452デフォルトの名無しさんNGNG
Linux上でgccを使用しています。

makeした時間を実行ファイルに埋め込みたいのですが、
makefileを上手く使えば可能でしょうか?
ソフトのバージョン代わりにmakeした時間をprintfしたいと思っています。
0453デフォルトの名無しさんNGNG
makeじゃないけどコンパイルなら__DATE__, __TIME__
0454デフォルトの名無しさんNGNG
>>451
少なくともお前には決める資格なし(プゲラ
0455デフォルトの名無しさんNGNG
なんか納豆臭いね
0456デフォルトの名無しさんNGNG
> makefileを上手く使えば可能でしょうか

いいえ。むしろMakefileにしろ

それにMakeした時刻なんかより
static sccsid = "$Id"; はかならずやっとけ
0457デフォルトの名無しさんNGNG
このスレもレベル低下が激しい。そんなに煽り煽られが好きならこの板にいなきゃいいのに。
0458デフォルトの名無しさんNGNG
つまり457は、自分の理解できない内容は読み飛ばしてるから、そうなる ;-)
0459 ◆FIcNi4f8js NGNG
          /\
        /    \/\
        |\   /    \/\
      /\  \ |\    /    \/\
    /    \  |  \  |\    /    \/\
    |\    /  .|       \  |\    /    \ /\
   / \ \/    |             \  |\   /    \/\
 /    \ |    .|                 \ |\    /    \/\
 |\    /|     |                      \|\    /    \
 |  \ //\                             \ /        \
 |   |/    \                      ウワァン!  /\          >
 |   \    /|                 ヽ(`Д´)ノ  /    \      / .|
 |     \ //\               / (  )  \       \   /    |
 |      |/   \        /\ /    < ヽミ3 \     /| /      |
 |      \    /|   /\/    \      \    /|   /          |
 |        \ //\/    \     \     /|  /                 |
 |         |/   \     \    / | /                    |
 |         \     \   / | /                         .|
 |           \    /| /                              .|
 |            \ /                                  |
 |              .|                                   .|
               |
               |
               |
0460デフォルトの名無しさんNGNG
まあ少なくとも「確信犯」「役不足」でバカ大学生が正しい用法正しい用法と騒ぎだしたのは

「テレビで紹介されてから」だな。



もともとは自分も知らなかった
で、マスコミに踊らされてさも「昔から知っていたかのように」振舞った
オメー今までそんなこと一言も言ってねえじゃん、程度のもの
0461デフォルトの名無しさんNGNG
確信犯の誤用ってどんなのだっけ
0462デフォルトの名無しさんNGNG
わかっててやること
0463デフォルトの名無しさんNGNG
「芸者」もそうだよな


昔は芸者と言えば「武芸」に優れたものも呼び名であった

それがいつしか踊り子を呼ぶようになった
0464デフォルトの名無しさんNGNG
お前らが馬鹿だということはよく分かった
0465デフォルトの名無しさんNGNG
123456789
0466デフォルトの名無しさんNGNG
ニポンゴ難しいあるよーホエホエ
0467デフォルトの名無しさんNGNG
> まあ少なくとも「確信犯」「役不足」でバカ大学生が正しい用法正しい用法と騒ぎだしたのは

じゃあ「確信犯」のもともとの意味言えるか? ;) (「役不足」は簡単すぎ。反対なだけなので)
0468デフォルトの名無しさんNGNG
>>461
確信犯

×わざとやること、わかっててやること

○(政治的・宗教的な)信念に基づいて自分は正しいことしていると信じて行う犯罪
0469デフォルトの名無しさんNGNG
いちいちバカ相手にしてスレを脱線させてるヤシもバカ
0470デフォルトの名無しさんNGNG
へ
0471デフォルトの名無しさんNGNG
ミ
0472デフォルトの名無しさんNGNG
確信犯は

法律に触れるのは理解するが自らの信念に基づいて
正しいと思うことをやるってことかとおもった

誤用でもあり誤用でもないような
0473デフォルトの名無しさんNGNG
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
                              
0474デフォルトの名無しさんNGNG
ようは「法律のほうがまちがってる」という信念でやってる場合は、
通常の刑では効果ないのよね。
0475デフォルトの名無しさんNGNG
もう、おまいら良いから。
世間に関心がある振りなんてしなくて良いから、
C言語だけ語っておけ。
0476デフォルトの名無しさんNGNG
>>473
なんだそのスペースは。もったいないことすんな
0477デフォルトの名無しさんNGNG
>>468
それじゃ違いが分からないんですけど・・・
0478デフォルトの名無しさんNGNG
はいはい
0479デフォルトの名無しさんNGNG
>>477
おいおい、全然違う。
0480デフォルトの名無しさんNGNG
法に触れるとわかっているが、信念に基づいて正しいと信じてわざと行う犯罪。
は、○で且つ×。
0481デフォルトの名無しさんNGNG
誤用とか確信犯とか正しい日本語とか、どうでもいいからヤメれ。
0482デフォルトの名無しさんNGNG
日本語なら俺に聞け! Part 93
0483デフォルトの名無しさんNGNG
ある関数で再帰をしている時、その関数内で値の帰るreturn(つまりvoidではない)された場合は、
今まで再帰でたまっていたスタックは、すべて自動的に、解放されるのでしょうか?
0484デフォルトの名無しさんNGNG
>>483
再帰の最下層でreturnしたからって最初に再帰を呼び出した箇所に戻るわけじゃないんだから、
順次さかのぼってPOPされていくと思われ。

gotoなんか使ってると別だけど
0485デフォルトの名無しさんNGNG
いや解放されるのは一個だけ
0486デフォルトの名無しさんNGNG
再帰は、全く同内容の、別の関数を呼んでいると思えばいい

func→func→func→func→func→func→
なら

func0→func1→func2→func3→func4→func5→






0487デフォルトの名無しさんNGNG
じゃあ中にはいっているstaticな変数の立場はどうなる?
0488デフォルトの名無しさんNGNG
> 最初に再帰を呼び出した箇所に

「再起を呼び出し」が意味不明
0489デフォルトの名無しさんNGNG
> その関数内で値の帰るreturn(つまりvoidではない)された

値を返さない関数はスタックを消費しないとでも思ってるのか? このぼけは
0490デフォルトの名無しさんNGNG
>>484-489
回答ありがとうございました。二分探索木で探索し終わった後も、わざわざ戻っている訳なんですね。
なんか効率がいいのか悪いのか、よくわからないなあ。
0491デフォルトの名無しさんNGNG
>>487
そういうトリックコードが好きなの?
0492デフォルトの名無しさんNGNG
>>490
処理効率を求めて再帰を使うんじゃない。
アルゴリズムをシンプルに実装するために再帰を使うんだ。
0493デフォルトの名無しさんNGNG
最近のコンパイラなら、末尾再起は最適化されてループと変わらないと思う。
0494452NGNG
>>453

有り難うございます。
やりたい事はできました。

>>456

すいません、もう少し詳しく教えて貰えませんか?
sccsidをprintfすると「$Id」がそのまま出力されてしまいます。
0495デフォルトの名無しさんNGNG
>>494
>456はSCCSなんて古式床しき代物でリビジョン管理しているだけだから無視していいよ。
#他にも、RCS/CVSなら"$Id$"というようにリビジョン管理用のキーワードがある。
#これらを埋め込んでおいてリビジョン管理するとそのキーワードがリビジョン情報になるわけだね。
0496デフォルトの名無しさんNGNG
make makes many problems
http://pc5.2ch.net/test/read.cgi/tech/1029599472/l50
0497452NGNG
>>495

理解できました。
丁寧なアドバイス有り難うございました。
0498デフォルトの名無しさんNGNG
>>456
rcsやsccsの埋め込みキーワードなんか何の役にも立たない。
それどころかコミットするたびにファイルが変更されるから
エディタで読み直しが必要になったり、勝手に再コンパイルしたりと
鬱陶しいだけ。その見返りがあまりになさすぎ。
単一ファイルで完結するアプリならまーいいかもしれんけど。
0499デフォルトの名無しさんNGNG
>>498
CVS使ったことある?
#いや、なんとなく知らないんだろうなぁと思ってね。
0500デフォルトの名無しさんNGNG
>>498
そんな低レベルな使い方での不満でバージョンコントロールシステムを
否定する人も珍しいな。ちゃんとしたツールを使おうね。

0501デフォルトの名無しさんNGNG
お前等いいかげんにmakeのスレにでも逝け
0502デフォルトの名無しさんNGNG
int hoge(int a) {
// ...
if (a == 0) { return 1; }
// ...
if (a == 2) { return 1; }
// ...
return 2;
}

というのと

int hoge(int a) {
int r = 1;
do {
// ...
if (a == 0) { break; }
// ...
if (a == 2) { break; }
// ...
r = 2;
} while (0);
return r;
}

というのとどっちがいいですか?
0503デフォルトの名無しさんNGNG
>>502
int hoge(int a) {
switch (a) {
case 0:
case 1:
case 2:
// ...
return 1;
break;

default:
return 2;
break;
}
}
0504デフォルトの名無しさんNGNG
あ、すみません途中から直接returnで戻るのと
breakで最後に抜けるのとどっちがいいかなと思いまして。
returnのかわりにgotoで最後付近のラベルに行くのはまずいですか?
0505デフォルトの名無しさんNGNG
>>502
ifの羅列は事故の元。
最低でもelse if、ちゃんと書きたかったら>503を見習え。
お前のレベルでgotoは使うな。禁じ手にしておけ。
変にフラグ変数を持とうとするな。ローカル変数でも増えれば管理コストが増える。
0506デフォルトの名無しさんNGNG
>>504
俺は途中でreturnで抜ける。
抜ける箇所が複数あって、それぞれで同じ処理をしなければ
ならないときは、関数の最後にまとめるけど。
0507デフォルトの名無しさんNGNG
俺は引数チェックのときはその場で抜ける。(なんかこの書き方には名前が付いてた気がするが・・・。)
関数の本体では最後まで粘る。
分岐中にreturnしなきゃならないようなときはその部分を別関数に分ける。
0508デフォルトの名無しさんNGNG
>>507
私もだいたいそんな感じ。
0509デフォルトの名無しさんNGNG
K&R C演習8-4の「アンサー・ブック」の解答に疑問を感じています。
書き込みファイルの処理において、
fp->cntとfp->ptrの値の変更は必要ないのでしょうか。
このままではwrite()で書き出した古いバッファの中身を、
新しい位置でバッファがいっぱいになったときに再び書き出してしまうのでは?
0510デフォルトの名無しさんNGNG
レイトレーシング法使ったオーロラって描くの難しい?
これやろうと今必死なんだがよくワカンネ・・・〇| ̄|_
0511デフォルトの名無しさんNGNG
>>510 POV-Ray 使うと簡単。
0512510NGNG
即レスthxです。
できればVisual C++で作りたいんですけど、それじゃ無理かな?
お答えいただいたのに申し訳ないです
0513デフォルトの名無しさんNGNG
色付き透過ポリゴンを適当に並べてレンダリングすればいいだけじゃないの?
0514デフォルト名無しさんNGNG
やっぱりここに限る。
http://p51.aaacafe.ne.jp/~aypg/
0515デフォルトの名無しさんNGNG
>>499 >>500
脊髄反射レス乙
俺は埋め込みキーワードが使えないっていってるだけ
cvsは普段から使ってる
つかさ、cvs使ってんなら尚更埋め込みなんか無意味だろ?
0516デフォルトの名無しさんNGNG
お前等いいかげんにmakeのスレにでも逝け 
0517デフォルトの名無しさんNGNG
>>515
ふーん。

>>510
別にコンパイラは何でもいいでしょ。

>>509
そう書かれてもアンサーブック成るものを知らないからなんとも言えない。

>>502
迷うくらいならgoto使うな。自信があるなら止めはしない。
0518デフォルトの名無しさんNGNG
>>504
発想が goto であるかぎり break や return に偽装しても全く同じこと
ジーオーティーオーというスペルに過敏反応するだけな先輩は見習わない方がいい

 【 な ん で ル ー プ が き れ い に ま と ま ら な い の か 】

自分に厳しく問いただせ
その場しのぎのいい加減な答えに騙されるな
ちゃんと数学的に考えろ
0519デフォルトの名無しさんNGNG
> 【 な ん で ル ー プ が き れ い に ま と ま ら な い の か 】

どこからループが?
頭ん中でループしてますか?
0520デフォルトの名無しさんNGNG
breakから
for(;;){
  for(;;){
    ...
    goto LOOP_END;
  }
}
LOOP_END:

こういう場合を想像したんじゃない
0521デフォルトの名無しさんNGNG
脳内妄想して興奮して空白入れまくりか、オメデテーナ
0522デフォルトの名無しさんNGNG
>>519
逆に聞くが >>504 は読めてるか?
つーか、おまえ本当にC使いか?
0523デフォルトの名無しさんNGNG
>>502-503
は無視か、オチツケヨオメー
0524デフォルトの名無しさんNGNG
もともと goto 回避って言いたかっただけだろ?
while(0) みたいなコードを何の動機もなく書くキチガイは相手にしてないよ
0525デフォルトの名無しさんNGNG
相手にしないのならレスするなw
0526デフォルトの名無しさんNGNG
>>525
キチガイと断定してないだろ
オチツケヨオメー をそのまま返す
0527デフォルトの名無しさんNGNG
>>524
do {...;} while (0);
はbreakの受け皿として割りと見るコードだけどそれをきちがいと?
読めてないなら書かなくていいよ。
0528デフォルトの名無しさんNGNG
>>527
>>524
0529デフォルトの名無しさんNGNG
……何この人。一人下げずに必死になっちゃって。
0530デフォルトの名無しさんNGNG
unsigned char hoge[4]に unsigned int を代入したのですが、
1発で代入する方法はありますか?
ビット演算して1バイト毎に代入する方法しか思い浮かばなくて。

hoge[0] = unsigned intの7-0ビット
hoge[1] = unsigned intの15-8ビット
hoge[2] = unsigned intの23-16ビット
hoge[3] = unsigned intの31-24ビット
0531デフォルトの名無しさんNGNG
強引な方法でよければ
unsigned char hoge[4];
unsigned int p=0x12345678;

memcpy(hoge, &p, sizeof(unsigned char)*4);
エンディアンはシラネ
0532デフォルトの名無しさんNGNG
>>530
リトルエンディアンなら*(unsigned int *)hoge = 0x12345678;
0533デフォルトの名無しさんNGNG
>>529
たまたま虫の居所が悪かったが
最初のレスに無礼があれば謝らない限り方向性は確定
0534デフォルトの名無しさんNGNG
>>527
キチガイでいいよ。
0535デフォルトの名無しさんNGNG
ftpのコマンドラインをcプログラムの中に書くことできるんですか?
0536デフォルトの名無しさんNGNG
>>530
上記の補足だけど、union使う方法もある。
0537デフォルトの名無しさんNGNG
>>535
system("ftp");
ってこと?
0538デフォルトの名無しさんNGNG
だれか>533を説明してくれ。
0539デフォルトの名無しさんNGNG
*( (unsigned int*)&hoge[0] ) = *((char*)&data[3]) | *((char*)&data[2])<<8 | *((char*)&data[1])<<16) | *((char*)&data[0]<<24);
ビッグエンディアンならこうできないかな。やった事無いし、わかんないけど。
0540530NGNG
>>532

出来ました!!
有り難うございます。

ポインタって奥が深いですね。
ハード屋な私にはある意味ヒエログラフです。
0541デフォルトの名無しさんNGNG
>>540
アドレスバスに出力する情報とバウンダリが何か?
0542デフォルトの名無しさんNGNG
>>538
放置しる
0543デフォルトの名無しさんNGNG
2chにはageを毛嫌いする人種がいるからな
0544デフォルトの名無しさんNGNG
>>543
嫌われてるのはお前自身だろう。ageのせいにしてはいけない。
0545デフォルトの名無しさんNGNG
int xが1なら0を0なら1をxに代入するプログラムで
x = 1 - x;
以外に効率のいい方法ってありますか
0546545NGNG
>>545
以外に→以上に
0547デフォルトの名無しさんNGNG
2進数の入れ方について

int a = 123;
とすると、
aに10進数の123を入れたことになります。

では、
2進数の01010101
をaに入れるには、どうすればよいのでしょうか?
(何か、特別な関数があるのでしょうか???)
0548デフォルトの名無しさんNGNG
>>547
#include <stdlib.h>
int a=strtol("01010101",NULL,2);
0549sageNGNG
>>547
普通に
int a = 01010101
でいいんじゃない?
コンパイルエラーにならなかっから、これでいいと思うけど・・・
0550ageNGNG
>>549
それじゃ8進数の1010101が入る。
あとセミコロンを忘れるな。
0551デフォルトの名無しさんNGNG
>>550
ええ!なんで?
0552ageNGNG
頭に0がつくから。
0553デフォルトの名無しさんNGNG
545の方法初めて知った。。。
x=(x)? 0 : 1;か
boolなら
x=!x;
使ってる。
0554>>549NGNG
>>552
頭に0がつく・・・8進数
頭が0以外・・・10進数

なのか・・・
うーん、ためになる。
0555デフォルトの名無しさんNGNG
>>545
x = x ^ 1;
のほうが速いかも。
0556デフォルトの名無しさんNGNG
>>554
違う
0557>>547NGNG
>>548
ありがとうございます!

0558デフォルトの名無しさんNGNG
>>554
頭に0がつく・・・8進数
頭に0xがつく・・・16進数
それ以外・・・10進数
0559デフォルトの名無しさんNGNG
そういえば八進数なんてパーミッションの指定以外で使ったことないな
0560>>549NGNG
>>558
うほっ!

なるほど・・・


0561デフォルトの名無しさんNGNG
>>559
\033
0562デフォルトの名無しさんNGNG
頭に0で八進数ってのは完全に設計ミスだよな。
桁そろえも満足に出来やしない。
0563デフォルトの名無しさんNGNG
>>562
馬鹿ですね。あなたが。
0564デフォルトの名無しさんNGNG
せめて0oとか・・・
0565デフォルトの名無しさんNGNG
>>564
それは俺もいつも思う。
0o = 8進数
0x =16進数
0b = 2進数
にして欲しかった
0566デフォルトの名無しさんNGNG
>>562
もういらんよな、あんな仕様。
>>563
根拠レスなあなたもなかなか負けてませんよ。
0567デフォルトの名無しさんNGNG
桁あわせ??そんな事する必要あるのかな
0010
じゃだめなのだろうか
0568デフォルトの名無しさんNGNG
だめだろ
0569デフォルトの名無しさんNGNG
>>568
駄目な決まりあったっけ?
0570デフォルトの名無しさんNGNG
>>569
お前脊髄反射でレスしてるだろ
少しはスレ読め
0571デフォルトの名無しさんNGNG
pdpがオクタルマシンだったからな。
普通にメモリダンプするとアドレスとか全部8進ででてくるんだと。

000017 100000 077777 177777

先頭の0/1がそのまま符合ビットになって解りやす。
0572デフォルトの名無しさんNGNG
Cでは10進数で0を表す事ができない。
……8進数になる。
0573デフォルトの名無しさんNGNG
>>570
見てわからないんだがな
教えてくれないか?
0574デフォルトの名無しさんNGNG
10進数で桁あわせするって事か
8進数で桁あわせたいのかと思った
なんで0であわせたいんだろうコボラー?
+でも頭につければいいのにー
0575デフォルトの名無しさんNGNG
>>570
脊髄反射でレスできる香具師いたんかw
0576デフォルトの名無しさんNGNG
>>572
その通り
integer-constant ::= decimal-constant integer-suffixopt
            | octal-constant integer-suffixopt
            | hexadecimal-constant integer-suffixopt
decimal-constant ::= nonzero-digit | decimal-constant digit
octal-constant ::= '0' | octal-constant octal-digit
nonzero-digit ::= '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
octal-digit ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7'
0577デフォルトの名無しさんNGNG
猿なのでBNFなんて読めません
0578デフォルトの名無しさんNGNG
8進数の1010が入っているint変数abcについて、
これを10進数にかえる方法ってありますか?

int a = 01010;

int b = int変数aを10進数に変換して入れたい。

0579デフォルトの名無しさんNGNG
>>578
ネタはネタスレで
0580デフォルトの名無しさんNGNG
>>578
変換は必要ありません。
a はすでに 10 進数になっています。
0581デフォルトの名無しさんNGNG
>>580
お前もネタスレへ
0582デフォルトの名無しさんNGNG
なってねえよ
0583デフォルトの名無しさんNGNG
int aは8進数でもあり、10進数でもあり、
取り出すときに好きにしろってこった
0584デフォルトの名無しさんNGNG
>>581
いや、まじめに答えたんですけど。
こういう言い方のほうが分かりやすいかなぁと思って。
0585デフォルトの名無しさんNGNG
>>584
自分のレベルに人をあわせるな
お前のような奴がC初心者本出すと、ケツ拭く紙にも使えない本になるんだよな
0586デフォルトの名無しさんNGNG
>>585
いやヒドイ言い方だなぁ。
質問者のレベルに合わせただけじゃないか。
0587デフォルトの名無しさんNGNG
>>578
この場合の「01010」は、ある数値(この場合10進数の520)の表現方法の
1つに過ぎません。よって、int a = 01010;と書いたことでaに代入されるのは
10進法で言う520であり8進数で言う1010であって、aには実際に進数とその
表現をセットで格納しているわけではないのです。
0588デフォルトの名無しさんNGNG
表記が違うだけで数値は等しいので変換の必要はなし。
0589デフォルトの名無しさんNGNG
>>586
最初から正しい事を書けば二度手間じゃないだろ?
わざと正しくない事を教えて何の意味がある?
0590デフォルトの名無しさんNGNG
なるぽ
0591>>578NGNG
>>587
GoodJob!
ありがとうございます!
0592586NGNG
>>588
結局ね、こういう言い方もね、>>580 もね、同じなんだよねぇ。

表記を無視して実体は語れないんだからさ、
1つの表記をもって実体と言ったっていいと思うがね。

数学とかでよくやる手法だよ。
剰余群の元をもとの群の部分集合やそこに属する元で代表させたりさ。
0593デフォルトの名無しさんNGNG
よく言うだろ?
Cの初心者本を書く人は書いてる人自身がC初心者だって。
0594デフォルトの名無しさんNGNG
>>592
いや >>588 はどう好意的に解釈しても 大 嘘 だろ
0595586NGNG
>>594
え?そう?どこらへんが間違ってる?
0596デフォルトの名無しさんNGNG
>>595
間違っていない
0597デフォルトの名無しさんNGNG
>>595
すまん誤爆したw>>580だた
0598デフォルトの名無しさんNGNG
> その見返りがあまりになさすぎ。

それがおまえがぼけなだけ。

strings /usr/bin/* する楽しみがあるじゃないか
0599デフォルトの名無しさんNGNG
わたしはsubversionユーザーだが、
RCSでもcvsでも$Id$を入れるダミー変数はsccsidという名前にする慣習が
昔からあることを知らないやつはかなりのボケだと思う。(Unix屋ならまずまちがいなく知ってる)
0600デフォルトの名無しさんNGNG
> 表記を無視して実体は語れないんだからさ、

語れるにきまってるだろ! ぼけ

表記がなんであろうと a + b はできるし
a > b もできるんだよ
0601デフォルトの名無しさんNGNG
>>600
表記しているやん
0602デフォルトの名無しさんNGNG
いいえ。してません。aが10進数か8進数かに無関係に足し算はできるし
比較もできる。代入も
なので、表記とか何進数かなんてのは気にしないままにその変数の一生が終わることが
ほとんどだ。
0603デフォルトの名無しさんNGNG
>>602
ところで「何を足し算しているの」と聞かれたら?
0604デフォルトの名無しさんNGNG
整数です。
0605デフォルトの名無しさんNGNG
>>604
「整数とはなんですか」と聞かれたら?
0606デフォルトの名無しさんNGNG
納豆臭いな・・・
0607デフォルトの名無しさんNGNG
>>605
それはC言語の話になるのか?
0608デフォルトの名無しさんNGNG
>>607
ごめん、関係ないと思う。
「表記を無視して実体は語れない」ということの真義を教えてあげようと思ってね。
0609デフォルトの名無しさんNGNG
話の流れだ。
スレ違いではあるまい。
0610デフォルトの名無しさんNGNG
そんなものはありません
0611デフォルトの名無しさんNGNG
表記ってのはそもそも、そこにある実体を分かりやすくするためにこう書きましょうって決めただけのものなんだから、
別に表記が無くても実体は存在するし、でもそれを語るのは面倒くさいから何らかの表記を用いて実体を説明するのは大いに結構だけど、

> 1つの表記をもって実体と言ったっていいと思うがね。

これは駄目だろ。
0612デフォルトの名無しさんNGNG
実体のままでは人が理解できないから、
人が理解できるような形にしたものが表記だろう。
PCの場合は電気信号のオンオフが実体か

というかそういうのは数学板方面の話題では・・・
0613デフォルトの名無しさんNGNG
ちなみに、イデアは実体ではないよ
0614デフォルトの名無しさんNGNG
たぶん >>611 は数学的な考え方がまったくできない人。
少なくとも数学という分野では表記なくして実体なんて存在しないという
考え方が主流だよ。形式的公理主義っていってね。
0615デフォルトの名無しさんNGNG
小学生に算数教えるのに2進数は使わないだろうしな
0616デフォルトの名無しさんNGNG
>>614
ちょっと単語を聞きかじったので使ってみたくなった中学生?
意味が全然違うぞ。
0617デフォルトの名無しさんNGNG
いいかげん脱線に付き合うな、放置すれ
0618デフォルトの名無しさんNGNG
もういいよ。
そろそろスレ違いを指摘した方がよさそうだ。
0619デフォルトの名無しさんNGNG
>>616
いや、違わないよ。
じゃぁ、どういう意味なの?
0620デフォルトの名無しさんNGNG
>>618
そうだね。私はもう突っ込むのやめる。
0621デフォルトの名無しさんNGNG
形式主義的公理主義
http://homepage3.nifty.com/Mr-nobody/axiom.html
0622デフォルトの名無しさんNGNG
お前らって、C「以外」の話になると雄弁だよな。
0623デフォルトの名無しさんNGNG
まあ童貞だからね
0624デフォルトの名無しさんNGNG
C言語を覚えたいんですけど、やっぱり本を買わないとダメですか?
サンプルのソースとかを見てわからない事があったらぐぐってみたり
じゃ覚えられないですかね?

ちなみにプログラム初めてです。
0625デフォルトの名無しさんNGNG
>>537
例えば、こういうのをcから、やりたいのです。
    ↓
fool% ftp genta
Connected to genta.
220 genta FTP server (SunOS 5.8) ready.
Name (genta:monta):
331 Password required for monta.
Password:
230 User monta logged in.
ftp> put $HOME/file_1 ./file_001
ftp> quit
0626デフォルトの名無しさんNGNG
>>624
日下部先生の本を買いましょう。バカ相手でも丁寧に教えてくれます。
0627デフォルトの名無しさんNGNG
Visual C++.netを使用して、
VisualC++プロジェクト→.NET→コンソールアプリケーション
で下記を作成し、ウォッチで"tmp"を参照すると、<未定義の値>
となってしまいます。

#include "stdafx.h"
#using <mscorlib.dll>
using namespace System;

typedef struct{
int a;
int b;
int c;
}AAA;
AAA aaa[10];

int _tmain()
{
AAA*tmp;
tmp = &aaa[1];
return 0;
}

VisualC++プロジェクト→Win32→Win32コンソールプロジェクト
で作成すると、参照できるのですが、.NETの方で参照できる
方法はあれば、教えて下さい。
0628デフォルトの名無しさんNGNG
>>626
ありがとうございます。ちょっとぐぐってきます。
0629デフォルトの名無しさんNGNG
>>626
ぐぐって出てきた
作ってわかるCプログラミング っていうやつでいいでしょうか?
0630デフォルトの名無しさんNGNG
>>629
そうです。
専用スレもあるけど、誉めるか貶すかどっちかで有益な情報は少ないから自分の目で確かめましょう。
0631デフォルトの名無しさんNGNG
>>625
戦略は3通り。
・ftpクライアントのマクロを組んで、コマンドラインから指定する(やり方忘れた)。
#マクロ機能の無いftpクライアントならお手上げ。
・標準入力から入力すると思われる文字列を予めテキストファイルに用意して、流し込む。
#詳細後述
・system()ではなく、popen("ftp", "w")してfprintf()で流し込む。
#詳細省略

で、2番目の方法。>625の例なら、
--

password
put $HOME/file_1 ./file_001
quit
--
というテキストファイルを用意(勿論パスワードは適切に)。
#1行目はログイン名。この例では空行とした。
そのファイルがftpIn.txtなら、system("ftp < ftpIn.txt")とすればいい。
0632デフォルトの名無しさんNGNG
>>631
クライアントによっては、パスワード入れるところで止まらないか?
外部プログラムから制御される目的で作られたクライアントであれば問題ないけど。
0633デフォルトの名無しさんNGNG
>>599
最近はrcsidというのにするのが流行です
0634デフォルトの名無しさんNGNG
>>631
第2案:パスワード入れるところで止まった。
ftpインタプリターに制御が移ったところへ、テキスト流しても対話しないと思う。
0635デフォルトの名無しさんNGNG
>>634
だからちゃんと書いてあるだろ?何をつっかかってんだ
0636デフォルトの名無しさんNGNG
ftpクライアントの挙動なんて、このスレで扱う事か
0637デフォルトの名無しさんNGNG
’Д’)Σ むぅ、ダメか。私はどうやったんだろう…
’д’)  これ以上はスレ違いになりそうだし…

≡3  じゃ。そういうことで
0638デフォルトの名無しさんNGNG
>>635
4階席から、catcallは止めましょう。
まともに書いてる人に悪いから。
0639デフォルトの名無しさんNGNG
/* スレ違いなのでコメントアウト

多くの FTP クライアントの実装には、自動ログインさせないための
-n オプションがある。これを指定しておいて、標準入力から user
コマンドで
  user ユーザ名 パスワード
というのを食わせればいいんでないかと。 */
0640デフォルトの名無しさんNGNG
#wget ftp://username:password@host/path
0641デフォルトの名無しさんNGNG
cでftpモジュールをつくるには?
これなら、ほんスレかと。
0642デフォルトの名無しさんNGNG
ネットワークプログラミングスレ向きだな。
0643デフォルトの名無しさんNGNG
>>625 に SunOS って書いてるから Unix でしょ。
/dev/tty?? と /dev/pty?? を使った擬似端末で同様の処理を行った事あるよ。
ソース持ってるけど守秘義務あるので晒せない...
簡単に説明できるもんでもないし...ググッてね。
0644デフォルトの名無しさんNGNG
>>643
>>>625 に SunOS って書いてる
相手がね。
0645デフォルトの名無しさんNGNG
↑そうだな。でも fool% とか書いてるから Win ではないだろ。
Unix の仲間なら /dev/tty くらい有るだろ。良くは知らんが...
0646デフォルトの名無しさんNGNG
> 最近はrcsidというのにするのが流行です

それは「ださい」と昔から言われている(いまも)やつです。

そういう私は、sccsの時代はちょっとしか体験しなかったけど、
ずっと長くRCSだった、VSSも使ったけどちょちょだけ、その後ずっとcvsで、
いまはSubversionだが、その5つともずっと変数名だけはsccsidだ。
0647デフォルトの名無しさんNGNG
>>646
そんな話聞いたことないけど。あなたの回りか、ある一部だけの話では?
ググってもrcsidの方が圧倒的に多いよ。ひょっとして、使う人が少ないから「つう」ってことなのかな?
0648デフォルトの名無しさんNGNG
> rcsidの方が圧倒的に多いよ

いいえ。それはかなりのまぬけ。
0649デフォルトの名無しさんNGNG
使っているのがcvsなのに、キーワードはRCS互換のもの($Id$#とか$Date$とか)で、
さらに、いれる変数がsccsidってところがいいんじゃん。わたしもそうしてるよん。
0650デフォルトの名無しさんNGNG
アフォが一人降臨なさってますな
0651デフォルトの名無しさんNGNG
ははぁ、いまどき/usr/bin/*をstringsして喜んでる「Unix屋さん」でしたかw
0652デフォルトの名無しさんNGNG
> いまどき/usr/bin/*をstringsして

いまどきじゃなくてもしますね。基本ですから。
0653デフォルトの名無しさんNGNG
voidごっこは他所でやれよ
0654デフォルトの名無しさんNGNG
>>653
どれがvoidごっこ?
おしえて! わたしもやりたいー
0655デフォルトの名無しさんNGNG
Cってなんですか、入れるんですか?
0656デフォルトの名無しさんNGNG
>>655
お前の人生、イラクの人質より価値が無い
0657デフォルトの名無しさんNGNG
>>655
そう。挿れないのは B。
0658デフォルトの名無しさんNGNG
16ビットのrawファイル読み込むときは
sizeはfloatで良いの?
0659デフォルトの名無しさんNGNG
rawファイルって?
0660デフォルトの名無しさんNGNG
生ファイルだろ。
画像の生なら16bit unsignedだな。
0661デフォルトの名無しさんNGNG
いや、生ファイルはいいけど、その形式なんて作った奴に聞かんと分からんし。
なにか有名なアプリとかの「rawファイル」なら、知ってる人がいるかもだが。
0662デフォルトの名無しさんNGNG
よく分からない質問に、それってどういうことだって質問しかえしても、
返事が返ってこないことがほとんどなので、不完全燃焼。
0663デフォルトの名無しさんNGNG
>>658
16bitならunsigned short intで読み込むと良いよ
#include <stdint>
uint16_t
の方が良いけれど。
0664663NGNG
#include <stdint.h>か。。
0665デフォルトの名無しさんNGNG
質問です
Visual C++のコンソールアプリケーションでプロジェクトを作ったときに
int _tmain(int argc, _TCHAR* argv[])で始まる型が出来ますがこれはint main(void)と何が違うのでしょうか?
手持ちの参考書にはすべてのCプログラムではint main(void)が基本とありますがこれはいったいなんでしょうか?
0666デフォルトの名無しさんNGNG
int main(int argc, char *argv[])とどこが違うか見ろ。
そして見たらVisual C++の専用のスレに移動しろ。
0667デフォルトの名無しさんNGNG
http://www.ipa.go.jp/security/rfc/RFC1321JA.html
上記のサイトにあるMD5のプログラムを利用したいのですが、ソースを見てもちんぷんかんぷんです。
global.h
md5.h
md5c.c
mddriver.c
上記の4つのファイルからなってるみたいですが、
任意の文字列もしくは数字を入力すると128bitのハッシュ値を呼び出し元の関数へ返したいのですが
何の関数に何の型の引数を渡し、返り値はどういったものであるのでしょうか?(ファイルへ書き出すのでしょうか?)
簡単な使い方をアドバイスお願いします。
0668デフォルトの名無しさんNGNG
>>667
必要なのは上三つ
使い方はmddriver.cを見よ
これくらい読めなければあきらめろ
htmlにする時に<>が消されてるかもしれないからソースは別の所から
取ってくるといいかも
0669デフォルトの名無しさんNGNG
>>665
( ・∀・)つ〃∩ヘェーヘェーヘェー
結構.net使ってるけど
ずっと空のプロジェクトで作ってたから知らなかった
0670デフォルトの名無しさんNGNG
>>665
パラメータを受け取るための文字列の型がTCHAR**になっているmain
TCHARはUNICODEのときはwchar、ANSIのときはcharになる

・・・であってる?
0671デフォルトの名無しさんNGNG
>>665
つーか、WinアプリはGUIだろうがCUIだろうが freestanding-environment だぜ
main がどうたらと言いだした時点からかなり痛い勘違いに陥ってるぞ
0672デフォルトの名無しさんNGNG
>>671
VC++ 6.0 Console Application だと Hosted Environment だけどね。
まあ、これは互換性の為だろうな。
0673デフォルトの名無しさんNGNG
>>672
いーや、freestanding-environment だよ
任意になってる機能が多めに入っているが
main に関しては議論の余地すらない
0674デフォルトの名無しさんNGNG
ここ最近質問者以外でageてる奴ってバカが多いね(一人か?)
0675デフォルトの名無しさんNGNG
やーい、反論できねえ (プププ
0676デフォルトの名無しさんNGNG
>>675
(〃∇〃)見てるこっちが恥ずかしいぞ
0677デフォルトの名無しさんNGNG
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
0678デフォルトの名無しさんNGNG
>>677
阿川弘之の初期の短編小説で「鱸とおこぜ」というのがあった。
昔は国語の教科書に収録されていたので知っている人も多いと思うが、食いつ
0679デフォルトの名無しさんNGNG
K&RのUNIXの章がマジわからぬ。これ分からなくても問題ないですよね??
あと、アルゴリズムの入門書に、動的計算法がのってるけど、これ全然入門者向けじゃないよ〜
0680●NGNG
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
0681デフォルトの名無しさんNGNG
質問おねがいします
C言語でDOS画面を出さずに裏で実行するアプリケーションを作るにはどうしたら言いのでしょうか
できるだけ自分で調べますのでヒントだけでもおしえて下さい
0682デフォルトの名無しさんNGNG
rubyyyyyyyyyyyyyyyyyyyyyyyyyy
0683r/556NGNG
>>681
TSRでググれ
0684デフォルトの名無しさんNGNG
>>683
即レスありがとうございます。
常駐プログラムの作成法というのがいくつかヒットしました。
勉強してみます。ありがとうございます。
0685デフォルトの名無しさんNGNG
CでTSRを書くと、無駄な領域まで常駐しちゃうから
メモリ勿体ないよな。
>>681 がんがれ!
0686デフォルトの名無しさんNGNG
>>681
単に表にウィンドウが出なければいいだけなら、ショートカット作ってプロパティで設定するだけだけど?
0687デフォルトの名無しさんNGNG
>>681
#include <windows.h>
#include <stdio.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
return 0;
}

ダメかな・・・
0688デフォルトの名無しさんNGNG
exeとdllが一つづつ存在する。

exeには二つの関数a()とb()が定義されている。
dllには二つの関数A()とB()が定義されている。

exeはLoadLibrary、GetProcAddressを使って
A()を実行し引数として関数ポインタaを渡す。

A()は与えられたポインタaからa()を実行し
引数として関数ポインタBを渡す。

a()はポインタBからB()を実行し
引数として関数ポインタbを渡す。

B()は与えられたポインタbからb()を実行する。

typedef void(*FUNC_b)( void );
typedef void(__stdcall *FUNC_B)( void(*FUNC_b)(void) );
typedef void(*FUNC_a)( void(__stdcall *FUNC_B)( void(*FUNC_b)(void) ) );
typedef void(__stdcall *FUNC_A)( void(*FUNC_a)( void(__stdcall *FUNC_B)( void(*FUNC_b)(void) ) ) );

とやったのですが、
exeがLoadLibrary、GetProcAddressを使ってA()を実行するところで
ハンドルされていない例外が発生します。

どこを直せばいいのでしょうか。
0689デフォルトの名無しさんNGNG
>>688
スレ違いかと思ったが、取り敢えず「何のために typedef したのか」と。
typedef void *FUNC_b(void);
typedef void __stdcall *FUNC_B(FUNC_b);
typedef void *FUNC_a(FUNC_B);
typedef void __stdcall *FUNC_A(FUNC_a);
0690688NGNG
B()はGetProcAddressから読み出さないため__stdcallは必要無かったようです。
うまくいきました。ありがとうございます。
0691デフォルトの名無しさんNGNG
質問よろしいでしょうか
文字型配列 T[255]にscanfから文字を格納します。
その T の先頭文字だけをatoi関数を使って数字にしたいのですが、
エラーが出てきてしまいます。解決法は無いでしょうか。
0692デフォルトの名無しさんNGNG
>>691
先頭の1文字だけを数字にしたいなら
int n=(T[0] - '0')じゃダメなん?
0693デフォルトの名無しさんNGNG
>691

書き方が悪い。
0694デフォルトの名無しさんNGNG
scanf使うな ぼけ
0695デフォルトの名無しさんNGNG
>692
なんで括弧で囲っているの?
0696デフォルトの名無しさんNGNG
>>695
なんでそんなこと気にするの?
0697デフォルトの名無しさんNGNG
>696
かっこつけたかっただけだろう
0698デフォルトの名無しさんNGNG
>>697
ワロタ
0699デフォルトの名無しさんNGNG
>>698
('A`) うそっ!? マジで?
0700デフォルトの名無しさんNGNG
徹夜明けって、ハイになるよな。
0701デフォルトの名無しさんNGNG
寒いしな
0702デフォルトの名無しさんNGNG
燃え尽き症候群か?<灰になった
0703デフォルトの名無しさんNGNG
popen()を利用すると標準入出力の入力か出力をパイプにできますが
両方同時にパイプを使いたい時はどうすればいいでしょうか
0704デフォルトの名無しさんNGNG
パイプを2つ使えばどうでしょうか
0705デフォルトの名無しさんNGNG
>>703
標準関数ではできないので該当スレへどうぞ。
#まぁ、>704しかないな。
0706デフォルトの名無しさんNGNG
>>705
Cやん
0707デフォルトの名無しさんNGNG
今日学校でscanfをつかっていたらそんなの使うなと
怒られました。fgetsをつかえっていわれたんですけど
実際scanfをつかうのはやばいんでしょうか?
0708デフォルトの名無しさんNGNG
>>707
入力できる文字数を指定できないから、
例えば大量の文字列を入力した場合、確保した領域外を侵される可能性がある。
0709デフォルトの名無しさんNGNG
領域を侵した場合の動作は未定義。
標準入力から入力される内容を事前に知ることは出来ない。
scanfは読み込むサイズを制限できない。
以上から
scanfを呼び出した場合の動作は未定義と考えられますが、
そのように書かれていないのはなぜなんでしょうか?
0710デフォルトの名無しさんNGNG
>>709
以上から、以外の定義を無視して未定義だって?
0711デフォルトの名無しさんNGNG
>>709
入力文字数が確保した領域内に収まる限り、scanfは正常に動作する。
入力するのは人だが、入力できる文字数をあらかじめ知っていると仮定し、
かつ、人がそれを守ったとしたら間違った動作は起きない。
しかし、もしそれを守らない人がいたら動作は保証できない。
それがバグだ。
0712デフォルトの名無しさんNGNG
>>708
%255s
0713デフォルトの名無しさんNGNG
>>707
マニュアルをろくに読まないで自爆しまくってる自称ベテランです
あんまり毒されないほうがいい
そういう人に何か質問するときは腫れ物に触るように気を使いましょう
あなたの何気ない素朴な質問に突然キレたりします
0714デフォルトの名無しさんNGNG
>>711
それはバグじゃない。仕様だ。
0715デフォルトの名無しさんNGNG
char s = ' ';
strlen(&s);

これもバグですか?
0716デフォルトの名無しさんNGNG
アンカー忘れ
>>711
0717デフォルトの名無しさんNGNG
>>715
仕様を理解していてそんな使い方する人いるのか?
バグや仕様以前に、バカだろ?それは
0718デフォルトの名無しさんNGNG
fopenでテキストモードで開いたとき、freadとかfgetcとかの入出力関数は
いちいち1バイトずつ'\r'かどうかとかチェックしてるんですか?

遅そう。
0719デフォルトの名無しさんNGNG
>>718
では、速い方法を教えてください
0720デフォルトの名無しさんNGNG
>>718
一般的なディスクから読み込む速度に比べたら誤差のようなものです。
0721デフォルトの名無しさんNGNG
テキストで読み書きする必要なければバイナリでやればいい
0722デフォルトの名無しさんNGNG
>>715
なんにも問題ないコードだろ ぼけ。

char *p = NULL;
strlen(p);
と同じぐらい問題ない。
0723デフォルトの名無しさんNGNG
#include <stdio.h>

int main(void)
{
  char s = ' ';
  char *p = NULL;
  printf("%d\n", strlen(&s));
  printf("%d\n", strlen(p));
  return 0;
}

%./nullpo
10
Segmentation fault (core dumped)
0724デフォルトの名無しさんNGNG
>>723
で、それに何の意味が?
0725デフォルトの名無しさんNGNG
>>723
ワロタ
0726デフォルトの名無しさんNGNG
質問です。

aaa.c bbb.c ccc.c ddd.h
があって、

aaa.c は ddd.h を include している
bbb.c は ddd.h を include している
ccc.c は ddd.h を include している
ddd.h では変数 vvv を定義している

という状況で、
gcc -c aaa.c
gcc -c bbb.c
gcc -c ccc.c
gcc aaa.obj bbb.obj ccc.obj -o zzz

とすると、multiple definition のエラーが出てしまうのですが、
これはどうやって回避したらよろしいのでしょうか?
0727デフォルトの名無しさんNGNG
>>726
インクルードガードしろ
0728デフォルトの名無しさんNGNG
>>726

#ifndef _AAA_H_
#define _AAA_H_

・・・・・

#endif

などとしても、解決しませんでした。
0729デフォルトの名無しさんNGNG
すみません、>>727へのレスです。
0730デフォルトの名無しさんNGNG
ddd.hではexternをつけておいて
aaa.cで定義すればいいんじゃないの
0731デフォルトの名無しさんNGNG
>>730
そういう方法があったんですね。
ありがとうございましたm(_ _)m
0732デフォルトの名無しさんNGNG
これはぼけの考え > インクルードガードしろ
730のほうがまだまとも

0733デフォルトの名無しさんNGNG
>>732
どうぼけなんですか?
両方やるのが当然じゃないですか。
0734デフォルトの名無しさんNGNG
すみません。質問なんですが。。

#include<stdio.h>

#defineLOWER0
#defineUPPER300
#difineSTEP20

/*摂氏-華氏の対応表を印字する*/
main(){
int fahr;

for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
return 0;
}

今コンパイルしたら

E2048 define.c 5: 認識できないプリプロセッサ指令: 'difine'
エラー E2451 define.c 11: 未定義のシンボル STEP(関数 main )
*** 2 errors in Compile ***

と出てコンパイルエラーがでたんです。
0735デフォルトの名無しさんNGNG
今日はじめて #difine を使ったんですが。。。
0736デフォルトの名無しさんNGNG
>>734
#difine


ネタ?
0737デフォルトの名無しさんNGNG
>>734
そうか。
0738デフォルトの名無しさんNGNG
>>736
お恥ずかしい。defineでした。。。
お騒がせしました。コンパイル通りました。^^;
0739デフォルトの名無しさんNGNG
K&Rな香りがする
0740デフォルトの名無しさんNGNG
>>739
K&Rを香水代わりにしようと思うのですが、良いですか?
0741デフォルトの名無しさんNGNG
おすすめしません。
もう彼らはかなりのおっさんです。おっさん臭がしてもいいならどうぞ
0742デフォルトの名無しさんNGNG
おやじフェチです。
0743デフォルトの名無しさんNGNG
なにこのスレ
0744726NGNG
何度もすみません。

ddd.hで、
extern int array[10] = {・・・・・};

として、aaa.c の中で

int array[10];

などとしたのですが、うまく行きませんでした。
どうすればよろしいでしょうか?
0745デフォルトの名無しさんNGNG
K&Rってこういうの書いてないんだっけ?
0746デフォルトの名無しさんNGNG
>>744
答え言っちゃうとすぐだけど
同じような別のケースへの対応力はまずつかないだろうな・・・
0747726NGNG
>>746
それなら分かりますが(→メール欄)、何しろ大型の配列なので、出来れば一つのファイルで
まとめて定義しておきたいのです。
0748デフォルトの名無しさんNGNG
一つのaaa.cで定義すればいいじゃん。
0749デフォルトの名無しさんNGNG
そこで global.h と global.c ですよ
0750726NGNG
>>748
結局、それで解決しました。
とぼけた質問でどうもすみませんでしたm(._.)m
0751726NGNG
と思ったら、やはりうまく行きませんでした・・・

ddd.h で定義されているデータ(配列)を aaa.c bbb.c ccc.c で共有したいだけなのですが・・・
0752デフォルトの名無しさんNGNG
>>751
答え言っちゃうとすぐだけど
同じような別のケースへの対応力はまずつかないだろうな・・・
0753デフォルトの名無しさんNGNG
> 両方やるのが当然じゃないですか

いいえ、この場合にはまったく効果がないばかりか、無関係。
それにそもそもやるべきことではない。
0754デフォルトの名無しさんNGNG
っていうか、答える連中の程度が今週は低すぎ。

ちゃんと「externで初期化できるわけねーだろ!」と答えてやれよ。

ヘッダーにはextern宣言だけかいて、
externのない(初期化の書いてある)やつはどれかのcのファイルでやるんだよ。

ちゃんとした入門書には書いてある。
0755デフォルトの名無しさんNGNG
>>754
>ヘッダーにはextern宣言だけかいて、
>externのない(初期化の書いてある)やつはどれかのcのファイルでやるんだよ

C++ の extern const は違った気が。。。
0756デフォルトの名無しさんNGNG
>>753
もっと詳しく!
0757デフォルトの名無しさんNGNG
>>754
ネタにマジレスするのもあれだし、面白いネタも思いつかないし。
0758デフォルトの名無しさんNGNG
そのあたりのことは、日下部先生の入門書に詳しく書いてあるよん
0759デフォルトの名無しさんNGNG
>>758
もっと詳しく!
0760デフォルトの名無しさんNGNG
>ちゃんと「externで初期化できるわけねーだろ!」と答えてやれよ。
はっ?
C99の6.9.2を読め。
H&Sの4.8も読め。
0761デフォルトの名無しさんNGNG
まぁ宣言じゃ初期化はできないわな
0762デフォルトの名無しさんNGNG
switch( a ) {
case 0:
case 1:
default :
}

よりも

if (a==0) ;
else if (a==1);
else if (a==2);

のほうが速かったのですが、もしかしてswitchって使いでがありませんか?
0763デフォルトの名無しさんNGNG
>>762
処理系や、コンパイルスイッチによる。
気になるなら、アセンブラコードを読め。
0764デフォルトの名無しさんNGNG
>>762
一般には switch のほうが速いと思うよ。
なんでかっていうと、2分割2分割で判定するようなコード吐いてくれるから、
判定時間が条件数の log になる。
0765デフォルトの名無しさんNGNG
>>761
あれのどこが宣言だ
アフォは氏ね
0766デフォルトの名無しさんNGNG
>一般には

実測しろつーてるわきでそれを言うか (プ
0767デフォルトの名無しさんNGNG
a==0
a==...
のような条件数が多い時→switch
そうでもないとき→if
多すぎる時→関数テーブル

こんな感じですか?
0768764NGNG
>>766
うん?どういうこと?
0769デフォルトの名無しさんNGNG
>>767
散発的な条件→if
条件の空間を意識すると→switch/関数ポインタ
0770デフォルトの名無しさんNGNG
条件の空間ですか・・・ナルホド
0771デフォルトの名無しさんNGNG
どっちが速いかって…。

実行環境の実行速度が極端に遅い場合,速度が要求される場合,
かなり頻繁に呼び出される場合とかなら分からんでもないが、
大抵の場合は気にしなくてもいいだろう。
その程度の違いを気にするより、アルゴリズムを改善したりする方が
速度も速くなるだろうし。
必要もない所を高速化して見にくくなる方がばからしい。



と、有識者でも無い俺がほざいてみる。
0772デフォルトの名無しさんNGNG
>>771
else if と switch case の違いも
アルゴリズムの違いではあるな
0773デフォルトの名無しさんNGNG
char hex(int n)
{
return "0123456789ABCDEF"[n];
}
0774デフォルトの名無しさんNGNG
>"0123456789ABCDEF"[n];
この書き方って非標準?
0775デフォルトの名無しさんNGNG
超標準
0776デフォルトの名無しさんNGNG
用途によるがnの範囲チェックくらいは欲しい所だけどな
0777デフォルトの名無しさんNGNG
せめて、nを0xFでマスクするなりして欲しい
0778デフォルトの名無しさんNGNG
>>775
超越などしていない
0779デフォルトの名無しさんNGNG
>>777
いや ASSERT(0 <= n && n <= 0x0F); にすべきだと思う。
0780デフォルトの名無しさんNGNG
n["0123456789abcdef"]
0781デフォルトの名無しさんNGNG
>>780
はぃ?
0782デフォルトの名無しさんNGNG
閉区間のつもりだろ、きっと
0783デフォルトの名無しさんNGNG
実際に780のような書き方のソースみたら速攻で書き直させるな。
0784デフォルトの名無しさんNGNG
やっぱりな。その程度か。
0785ジョンNGNG
急ぎなんですけど、誰か助けてください。
学校で課題が出たんですけど、さっぱり分かりません。

ボイヤームーア法を使って文字列の探索するプログラムを作れという課題です。
下にプログラム(未完成)を載せておきます。これを改良して作るのらしいのですが・・・。

どなたかお願いします。

#include <stdio.h> #include <string.h> #define MAXCHR1 1000 #define MAXCHR2 256
int main(void)
{char filename[MAXCHR2], ex[MAXCHR1], strg[MAXCHR2];
FILE *fp;
printf("Input filename.\n");
gets(filename, MAXCHR2, stdin);
printf("Input search string.\n");
fgets(strg, MAXCHR2, stdin);
if((fp = fopen(filename, "r")) == NULL){
printf("read open error!");
return(-1);
}
while(fgets(ex, MAXCHR1, fp) != NULL){
/* ここでボイヤームーア法を使う */}
fclose(fp);
return (0);
0786デフォルトの名無しさんNGNG
>>785
お引き取り下さい

暇な人がエレガントにC/C++の宿題片づけます 33代目
http://pc5.2ch.net/test/read.cgi/tech/1097932699/
0787デフォルトの名無しさんNGNG
WindowsXP,bccでエスケープシーケンスで画面制御(カーソルを右にずらすなど)
を行うにはどうすれば良いですか?16bitのLSI C-86コンパイラでは
printf("\33[nA");等で出来ましたが32bitのbccでやるにはどのような方法があるでしょうか?
0788デフォルトの名無しさんNGNG
>>787
スレ違いだし。
猫でもわかる、でぐぐれ
0789デフォルトの名無しさんNGNG
>>787
無理だと思っとけ、不可能ではないが可搬性がない。
0790デフォルトの名無しさんNGNG
>>787
033ちゃうの?
0791デフォルトの名無しさんNGNG
>787

問題はそこぢゃないな。
コマンドプロンプトだ。
0792787NGNG
GCC3.3.2でやったらセグメンテーション違反となりました。
0793デフォルトの名無しさんNGNG
Re: エスケープシーケンスについて - C言語を始めよう! ( No.5 )
日時: 2004/04/05 09:21
名前: AOK


OSはXPですね。

以下の記述が参考になると思います。
http://www.geocities.co.jp/Bookend-Hemingway/4963/column/dos/dos45.txt
中ほどから少し後ろに「● エスケープシーケンス」に関する記述があります。

0794デフォルトの名無しさんNGNG
>>769
おそレスだが、漏れが仕事で使っているコンパイラでは、
switchは、分岐が4つくらいまでは先頭から比較(else if を並べるのと同じ)、
分岐が増えると、ジャンプテーブルつくってる。

>>764 みたいのは、ホントに一般的なのか?
0795デフォルトの名無しさんNGNG
>>794
VC6 ではそんな感じだったように記憶しているが、
もしかし私の勘違いか?
少なくともそんな最適化があっても悪くないよね。
0796デフォルトの名無しさんNGNG
>>794
少なくとも私の使っているコンパイラは、単なるジャンプテーブルだけでなく
条件判断との組み合わせに展開してくる。
例えば、caseが0,1,2, ... 31, 63のような場合、0-31はジャンプテーブルで、63は条件判断。
また、case値がすべて偶数なら2で割る(右シフトする)処理も入っている。
しかし、>764のような最適化が行なわれるような例は今のところ見ていない。
0797デフォルトの名無しさんNGNG
>>796
そのコンパイラが何か教えてほしい。
0798デフォルトの名無しさんNGNG
「一般的」などとほざく以上は、少なくとも
MS でも HP でも Sun でも IBM でも
同様の最適化をしてくれないと。
0799デフォルトの名無しさんNGNG
この場合OSなの?
コンパイラじゃなく?
0800デフォルトの名無しさんNGNG
>>799
OS?
0801796NGNG
>>797
どれがどうだったか覚えてなーい。
単純なテストプログラム作って試してみようにも単純すぎると最適化で消えかねないし、探すのも面倒。
0802デフォルトの名無しさんNGNG
http://www.cyberconnect2.jp/hack/radio.html
0803デフォルトの名無しさんNGNG
>>801
じゃ>>796はスルーということで
0804デフォルトの名無しさんNGNG
参考までにVisualC++での結果
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1099188559&res=2&fi=no
0805デフォルトの名無しさんNGNG
> 単純なテストプログラム作って試してみようにも単純すぎると最適化で消えかねない

ぜんぜんいいわけになっていない。
0806デフォルトの名無しさんNGNG
配列の要素数には限界があるのですか?
配列を大きくしすぎるとエラーが出るようなのです。
何か解決法はないでしょうか。
0807デフォルトの名無しさんNGNG
動的に配列作れ。
0808デフォルトの名無しさんNGNG
>>806
スタックとかヒープでぐぐれ。
0809デフォルトの名無しさんNGNG
>>806
vector
0810デフォルトの名無しさんNGNG
>>809
vector って何?
0811デフォルトの名無しさんNGNG
>>806

int array1[1000000]; /* 方法1 */

int main()
{
  static int array2[1000000]; /* 方法2 */
  int *array3 = malloc(sizeof(int) * 1000000); /* 方法3 */

  /* 処理 */

  free(array3); /* 方法3のときは有った「方がいい」 */
  return 0;
}
0812デフォルトの名無しさんNGNG
>>810
C++のSTL。スレ違いですよ。
0813デフォルトの名無しさんNGNG
> vector って何?

変数名ですよ。

812は頭悪すぎ。
0814デフォルトの名無しさんNGNG
> 配列を大きくしすぎるとエラーが出るようなのです。
> 何か解決法はないでしょうか。

解決法: 大きくしすぎなければよい。

0815rNGNG
メモリ増やせ
0816デフォルトの名無しさんNGNG
30cmものさしを60cmにしました。
0817デフォルトの名無しさんNGNG
>>811
それさえもCの標準規格では通る保証はない。
Cの標準規格を満たすためには配列の要素数をいくつまで保証すればいいか知ってるのか?
0818デフォルトの名無しさんNGNG
>   free(array3); /* 方法3のときは有った「方がいい」 */
>   return 0;
> }

mainの最後にfreeした「ほうがいい」とかいうやつは確実なぼけ
0819デフォルトの名無しさんNGNG
INT(0x13)を使って任意のセクタ−を読むにはどうすれば良いのですか
教えてください
0820デフォルトの名無しさんNGNG
>>816
1mmごと→1μmごと
0821デフォルトの名無しさんNGNG
いやです
0822デフォルトの名無しさんNGNG
*(*int)0x13
0823806NGNG
malloc関数を使ってできました。
ありがとうございました。
0824デフォルトの名無しさんNGNG
>>815
アホか
0825デフォルトの名無しさんNGNG
>>818
しないほうがいいの?
0826rubykitchNGNG
お前らも好きだね。
0827デフォルトの名無しさんNGNG
>>818
main関数のreturn若しくはexitの直前という意味で無くてもいいということだろ。

>>824
あながち間違ってない。
0828デフォルトの名無しさんNGNG
スタック領域ってメモリ増やせば増えるの?
0829デフォルトの名無しさんNGNG
>>828
コンパイラのマニュアルでも見ればー
0830デフォルトの名無しさんNGNG
>>827
一般的な環境で動かせるようにプログラムしないと環境依存になってしまうから、
メモリを増やせという解答はナンセンス。
もっとも、メモリが一般よりも少ないのなら間違ってはいないけれど。
0831デフォルトの名無しさんNGNG
>>828
コンパイラで指定できる。
0832デフォルトの名無しさんNGNG
>>830
おまえの定義する一般的な環境(メモリ容量)とは何だ?
世の中には最低メモリ容量の指定がないアプリのほうが圧倒的に少ないんだよ。
0833デフォルトの名無しさんNGNG
最低メモリ定義しておいても、そのときのメモリの使用状況にも
左右されるしなぁ。
0834デフォルトの名無しさんNGNG
ほほぉ、アプリの多い少ないとは何を基準に量るのかね。
0835デフォルトの名無しさんNGNG
>>832
それはそういうカテゴリの一般にあわせればいいんだよ。
0836デフォルトの名無しさんNGNG
俺基準
0837デフォルトの名無しさんNGNG
というかPC以外での開発だったら必然的に環境依存になるだろ
0838デフォルトの名無しさんNGNG
メインメモリーは256Kワードね(Mじゃないよ)
それぐらいがふつう。
0839デフォルトの名無しさんNGNG
>>833
詭弁かよ。

>>835
どんなカテゴリだよ。
0840デフォルトの名無しさんNGNG
いいえ ニガゴリです
0841デフォルトの名無しさんNGNG
>>825
しなくてはいけない。
0842デフォルトの名無しさんNGNG
>>841
阿保
0843デフォルトの名無しさんNGNG
>>839
どちてぼうや?
一休さんの番組に閉じこもっておけばいいよ。
0844デフォルトの名無しさんNGNG
>>841
mustではないよ。
0845デフォルトの名無しさんNGNG
>>843
阿保
0846デフォルトの名無しさんNGNG
>>825
環境にも拠るけど、スワップに追い出されてたヒープを free したお陰で
終了処理が遅くなる、という事はあるかも知れない (ないかも知れない)。
何れにしても、malloc と free は「対にして使うべき」というわけじゃない。
0847デフォルトの名無しさんNGNG
>>846
対にして使う「べき」かどうかは環境によって変わる。
環境のことを気にしたくないのなら原則freeしとけ。
0848デフォルトの名無しさんNGNG
>>847
exit前にfreeしないと駄目な理由は何かある??
0849デフォルトの魚釣りさんNGNG
>>848
自己満足
0850デフォルトの名無しさんNGNG
>>848
OSとライブラリの実装によっては、メモリが解放されない可能性がある。
0851デフォルトの名無しさんNGNG
そういう香具師には仕事を任せられない
0852デフォルトの名無しさんNGNG
> 一般的な環境で動かせるようにプログラムしないと環境依存になってしまうから

こいつぼけ。
「〜しないと〜ってしまう」のではなく、
一般的な環境で動かせるようにしてないのを環境依存っていうだけ
0853デフォルトの名無しさんNGNG
>>850
で、その可能性があるOSとライブラリ教えてくれない?
0854デフォルトの名無しさんNGNG
> OSとライブラリの実装によっては、メモリが解放されない可能性がある。

ぜったいにありません。規格でもそう決まっている。
0855デフォルトの名無しさんNGNG
malloc-free論争やってるって聞いたんだけど、ここ?
0856デフォルトの名無しさんNGNG
いいえ > ここ
隣です。
0857デフォルトの名無しさんNGNG
お前らちょっともち付け
0858デフォルトの名無しさんNGNG
>>852
当り前の事を書くのはボケではないと思うが…
0859デフォルトの名無しさんNGNG
プロセス終了時に自動的に解放されないような領域をmalloc/callocでわりあててはいけないことになってる > 標準規格
0860デフォルトの名無しさんNGNG
> 当り前の事を書くのはボケではないと思うが…

いいえ。まさにそれがぼけ。
0861デフォルトの名無しさんNGNG
>854
>> OSとライブラリの実装によっては、メモリが解放されない可能性がある。
>ぜったいにありません。規格でもそう決まっている。

そんなことはない。規格で決まっていても実際には解放されないプラットフォームはある。
組み込み系の OS モドキとか。
BREW とかもそうだな。
0862デフォルトの名無しさんNGNG
さっきから論点のおかしい香具師がいるのは気のせいか?
0863デフォルトの名無しさんNGNG
>>854
Windows95/98のことを言ってるんだと思う。

malloc free議論は終わらないからこのスレではやめておこうぜ。
0864デフォルトの名無しさんNGNG
>>848
C の腕をあげたいなら、常に free() することを念頭においた上で
設計や実装を行ったほうがよい。たとえプラットフォームが free() を不要にしていてもだ。
0865デフォルトの名無しさんNGNG
>>863
終わりがないなんてありえない。最後まで続けよう。
0866デフォルトの名無しさんNGNG
>>865
付き合うよ。ところで現在の論点をまとめてくれる?
0867デフォルトの名無しさんNGNG
そろそろ飽きたからどっか行ってよ
0868デフォルトの名無しさんNGNG
こんなことなら未定義にしときゃよかったのに。
0869デフォルトの名無しさんNGNG
おまえら規格規格っていうけど、世の中には
規格通りに作られていない実装もあるんだよ
0870デフォルトの名無しさんNGNG
>>869
それってバグって言うんじゃないの?
0871デフォルトの名無しさんNGNG
>>869
その環境、freeすれば"確実に"解放してくれる?
0872デフォルトの名無しさんNGNG
>>870
ちがうにきまってるだろ。仕様だよ。
たとえば VC6 が C++ 標準にしたがっていなくたって、それはバグとは言わん。
0873デフォルトの名無しさんNGNG
>>872
独自規格だね。
0874デフォルトの名無しさんNGNG
>>869
オレは組み込み系とかのPGもやるのでそういうコンパイラも使うが
そういうのはANSI Cに標準していると書かれていなかったり、注意書きで
書かれている。
規格外の話をもってくるほうが馬鹿
0875デフォルトの名無しさんNGNG
C標準が使えなかったりな
0876デフォルトの名無しさんNGNG
標準ライブラリが使えたとしても重すぎたりするよね。
printfとかは標準出力がない環境だと当然使えないし…
使えたとしても巨大になりすぎるから俺printf作ったりとかして…
0877デフォルトの名無しさんNGNG
プロセスが終了したときに割り当てられた
メモリを開放するとはC言語では決まっていない。

メモリが開放されるかどうかはOS依存。
つまりメモリの開放をOSに任せるということは
OS依存のプログラムを書いているということだ。
0878デフォルトの名無しさんNGNG
>>876
標準出力が無い環境でprintfを使うと、何がどこに表示されるのですか?
0879デフォルトの名無しさんNGNG
>>878
ヒント。GUI画面への出力は標準出力ですか?
0880デフォルトの名無しさんNGNG
>>878
あくまでも例
・コンソールに出力される
・どこにも出力されない
・デバッグ用メモリ空間に出力される
0881デフォルトの名無しさんNGNG
> メモリが開放されるかどうかはOS依存

こいつぼけ。「開放」などぜったいにしない。
「解放」ならするが。

知ったかぶりするやつは字もまちがえるからすぐわかる。
0882デフォルトの名無しさんNGNG
> そんなことはない。規格で決まっていても実際には

そんなものはCではない。
0883デフォルトの名無しさんNGNG
たかが誤字の指摘ごときで反論している気になっている881w


メモリが解放されるかどうかはOS依存で間違いありません。
0884デフォルトの名無しさんNGNG
printfで「%d」が10進数で出力すると標準規格で決まっているのだが、

以前、そうでない処理系があった(まあ、ようするに標準規格を満たしていないわけだ)。
で、「そういう場合もある!」とか、いっても無意味なわけ。わかる?

「Cじゃないもの」までふくめれば、なんとでも言えるわけなので。
0885デフォルトの名無しさんNGNG
>>883
さっきから変な奴がどうにも見当違いなレスばかりしていると思わないか?
0886デフォルトの名無しさんNGNG
> C の腕をあげたいなら、常に free() することを念頭においた上で

いいえ。してはいけない。
0887878NGNG
>>879
環境によるかと。

>>880
どこに出力されるとすると、
「巨大になりすぎる」んだろう...

0888デフォルトの名無しさんNGNG
>>885
>>881とかな。ほんと誤字の指摘だけなんて見当違いもはなはだしい。
0889デフォルトの名無しさんNGNG
> そんなことはない。規格で決まっていても実際には解放されないプラットフォームはある。
> BREW とかもそうだな。

いいや、BRWもプロセス終了時に全部解放するのでfreeする必要はない。

0890デフォルトの名無しさんNGNG
>>886
なぜ?
0891デフォルトの名無しさんNGNG
>>887
組み込みで気を付けることは何でしょう。
0892デフォルトの名無しさんNGNG
>>889
> いいや、BRWもプロセス終了時に全部解放するのでfreeする必要はない。

そうか?少なくとも BREW 2.0/2.1 では解放しないぞ。
0893デフォルトの名無しさんNGNG
MS-DOSのTurboCでは
標準出力に出力するprintfと
コンソールに出力するcprintfの二つの関数があったなぁ。
違い。わかるよね? >>878
0894デフォルトの名無しさんNGNG
> 少なくとも BREW 2.0/2.1 では解放しないぞ。

そりゃにせものだろう。
必ず解放するので、こっちのコーディングルールなんかでは終了時にはいちいちfreeするな
とまでかいてあるぞ。
0895デフォルトの名無しさんNGNG
>>894
きみんとこさ、実際にアプリ リリースしたことある?
KDDI の検証基準に必ず解放しなさいと書いてあるのしらんの?
0896デフォルトの名無しさんNGNG
> コンソールに出力するcprintfの

Turbo Cというより、Lattice Cが最初につくった -> mscに取り入れられた -> Tubo Cが
真似した。だな。
Lattice Cが何をヒントにその関数名にしたかは、いわなくてもわかるよね?
0897デフォルトの名無しさんNGNG
>>889
プロセス終了時に解放するのはOSの仕事であり、全部解放するかどうかはOS依存。
たまたまその環境で全部解放されたからってそれがCの規格で規定された
動きだと勘違いしないように。
0898デフォルトの名無しさんNGNG
> プロセス終了時に解放するのはOSの仕事であり

おまえぼけ。
たとえば「実際の文字を画面に出すのはOSの仕事」だからきまってないとかいうのと
同じぐらいぼけだな。
0899デフォルトの名無しさんNGNG
> たまたまその環境で全部解放されたからってそれがCの規格で規定された
> 動きだと勘違いしないように。

こいつぼけ。規格票読めよ。
0900デフォルトの名無しさんNGNG
voidの真似すんのが流行かい?
0901デフォルトの名無しさんNGNG
> きみんとこさ、実際にアプリ リリースしたことある?

うちはウィンドウマネージャーとデータ交換だ ぼけ
0902キリ番ゲッター ◆Q5W244LhJU NGNG
900・・・902
0903デフォルトの名無しさんNGNG
>>895
で、KDDI の検証基準が何か?
0904デフォルトの名無しさんNGNG
>>898
おまえがぼけだ。
Cの規格には入ってないんだよ。プロセス終了時にメモリを
全部解放するなんてのは。
0905デフォルトの名無しさんNGNG
>>899
どこに書いてあるのですか?w
0906デフォルトの名無しさんNGNG
>>901
>うちはウィンドウマネージャーとデータ交換だ ぼけ

はい?なんだそれ。
BREW に ウィンドウマネージャ なんてあったっけ?
なんか勘違いしてないか?
0907デフォルトの名無しさんNGNG
あの。。
自プロセスに解放するのと、他プロセスにも解放するのを
どうも混同しているんじゃないの?。。。。
0908 NGNG
なんかこのスレ表示が崩れるんだけど。
0909デフォルトの名無しさんNGNG
>>226=318=372=375=378=413=436=489=600=694=722=732=852=860=881=898=899
ぼけって良くでるね。
0910デフォルトの名無しさんNGNG
Linuxのlinux/list.hに

#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)

こういう個所があったのですが、このdo{...}while何を意味しているんでしょうか?
0911デフォルトの名無しさんNGNG
> ぼけって良くでるね。

でてねーよ ぼけ
0912デフォルトの名無しさんNGNG
> BREW に ウィンドウマネージャ なんてあったっけ

こいつ、しったかぶり決定!
あるにきまってるだろ!
0913デフォルトの名無しさんNGNG
>>910
ブロックを作っているだけ。
単純な { } だけだと不都合があるから。
0914デフォルトの名無しさんNGNG
> 、このdo{...}while何を意味しているんでしょうか

「うしろにセミコロンをつけたいが、1回だけ実行したい」ようなマクロを作るときに
使います。それ以外には使い道がありません。 > do { } while (0)
0915デフォルトの名無しさんNGNG
>>912
きみがしったかだろう。そんなもん BREW にないよ。
あるっていうんなら答えてみなよ。それ何するものなの?
0916デフォルトの名無しさんNGNG
> Cの規格には入ってないんだよ

こいつも規格票読んだことないぼけだな。
0917デフォルトの名無しさんNGNG
>>914
さっきからあげているおまえ。もう帰れ
0918デフォルトの名無しさんNGNG
>>916
で、どこに書いてあるのですか?w
0919デフォルトの名無しさんNGNG
> voidの真似すんのが流行かい?

void氏は「ぼけ」なんて言いますか?

本には書いてなかったように思うんですが。
0920デフォルトの名無しさんNGNG
>>909
え、これ全部同一人物なの?
きも
0921878NGNG
>>914
フローをcontinueやbreakで制御し、
他の人に保守できないコードを書くのにも使用できないだろうか。
0922デフォルトの名無しさんNGNG
> 「実際の文字を画面に出すのはOSの仕事」だからきまってない

ふふ
0923デフォルトの名無しさんNGNG
チャット!?
0924ひやかしの他人NGNG
電源切れば全部解放されるぞ。
0925デフォルトの名無しさんNGNG
>>924
それもC言語で規格化されているとか言いそうだなw
0926デフォルトの名無しさんNGNG
> え、これ全部同一人物なの

「自分に都合のわるいことを言う人間はごく少数だと思い込みたい」症候群のひとの
妄想です。
こういうときに匿名だとそう思えて便利なんですよね。

何かの都合で「実は複数(多数)いる」となると、もっと別の暴れ方になります。
数人の場合は「おまえら何つるんでるんだよ!」ぐらいで、
どんどんふえて、99:1ぐらいになるともうたいへんですね。
0927デフォルトの名無しさんNGNG
> 電源切れば全部解放されるぞ。

携帯電話ではそうなりませんね。電源切ってもプロセスうごいてるので。
0928デフォルトの名無しさんNGNG
なんかポコポコあがってたので
面白そうだったんです。。。
すみません。
0929デフォルトの名無しさんNGNG
>>927
電源切るんじゃなくて、電源取り去るなら、解放される。
0930デフォルトの名無しさんNGNG
めんどくさいじゃん > 電池抜く
0931デフォルトの名無しさんNGNG
水の中に沈めてみよう
0932デフォルトの名無しさんNGNG
そろそろ現実を見ようぜ
0933デフォルトの名無しさんNGNG
フラッシュメモリを主記憶にすれば。
次世代MRAMを主記憶にすらば。
そんな時代ももうすぐ。
0934デフォルトの名無しさんNGNG
すべて仮想記憶で処理すればいいじゃん。
0935結論NGNG
malloc() で確保したメモリはで必ず free() で解放しておけば
プラットフォームに依存せず、移植性の高いコードになる。
0936デフォルトの名無しさんNGNG
>>934
まあ、そういういいかたもある。
0937デフォルトの名無しさんNGNG
通はreallocで解放する。
0938デフォルトの名無しさんNGNG
漢は電池抜く。
0939デフォルトの名無しさんNGNG
通はぬるぽで止める。
0940デフォルトの名無しさんNGNG
痛はガッして壊して止める。
0941デフォルトの名無しさんNGNG
電源切るとか、電源抜くとか、電池抜くとか、水に沈めるとか、
おまえら野蛮人か
0942デフォルトの名無しさんNGNG
>>921
こんなん?
do {
  if (なんかの処理エラー)
    break;
  if (なんかの処理エラー)
    break;
  if (なんかの処理エラー)
    break;
  return 正常;
}
エラー時の後処理;

>>935
サーバ機から組み込みまで幅広く使われるコードなら
そーしてください。
0943デフォルトの名無しさんNGNG
>>941
エモーショナル・プログラまー
0944デフォルトの名無しさんNGNG
うわ、アホだ。
× }
○ } while (0);
0945デフォルトの名無しさんNGNG
本物のプログラマーはmallocを使わない。
すべて配列で片付けてしまうのだ。
0946デフォルトの名無しさんNGNG
>>945
できることならそうしたいねぇ
0947EXCULTer's / Active PC ◆CF/ockjcoQ NGNG
配列厨発見w
0948デフォルトの名無しさんNGNG
配列があればmallocいらないと言ってた奴か。
0949デフォルトの名無しさんNGNG
いたな、そんなの。
0950デフォルトの名無しさんNGNG
>>945
なんだか変な発言。
ヒープとスタックを比較するならわかるが、
ヒープと配列を比較してどうすんのかな。
0951デフォルトの名無しさんNGNG
>>935
それはプラットフォームに依存せず移植性の高いコードを書くには?
という課題に対して多くの回答の中のたった1つの回答にしかならん。
そんなFAQみたいなのを結論にするなよ。
0952デフォルトの名無しさんNGNG
>>951
それじゃキミの結論を教えてくれ。
0953デフォルトの名無しさんNGNG
>>950
動的配列と静的配列を比較しているんだろ。
いい加減、本質を見極めて発言してほしいものだ。
0954デフォルトの名無しさんNGNG
結論
freeしたければすればいい。
0955デフォルトの名無しさんNGNG
>>953
そういうことかい?
そこまで変な発言だとは想像もつかなかった。
0956デフォルトの名無しさんNGNG
>>953
端から見ているに
ヒープも配列のひとつにすぎない。
0957デフォルトの名無しさんNGNG
>>956
逆。配列もヒープのひとつに過ぎない。
0958デフォルトの名無しさんNGNG
>>948
いや、ポインタ要らんとか言ってなかったか?
0959デフォルトの名無しさんNGNG
埋まりそうなので次スレを立ててくる。
0960デフォルトの名無しさんNGNG
コストは同じだけど、
成功するかどうかは不確実だが、大抵は成功する方法と、
確実に成功する方法がありました。
どちらを選びますか?
0961デフォルトの名無しさんNGNG
文字列すらまともに扱えないじゃん
0962デフォルトの名無しさんNGNG
freeしようがしまいが自己責任で
0963デフォルトの名無しさんNGNG
>>960
今回はコスト同じなのか?
0964モモNGNG
>>960
もちろん確実なほうでしょう。
0965デフォルトの名無しさんNGNG
結論
freeすべきところでする。
0966デフォルトの名無しさんNGNG
>>960
今度はfree関数呼び出しにコストがかかるとか言い出すよw
0967878NGNG
>>942
do {
  // なんか処理
  if( 継続不可能なエラー ) {
    break;
  if( 最初からやり直せば何とかなりそう )
    continue; 
} while(0);
// 次の処理
0968デフォルトの名無しさんNGNG
C言語のコーディング論になるとなんでこんなにイデオロギー論争や宗教論争みたいな
まったくする意味がない不毛な論争になるんだろう?
0969デフォルトの名無しさんNGNG
>>968
意味なくない。常に free() を行うのが正統な C だ。
まともなプログラマなら誰だって同意するだろう。
0970デフォルトの名無しさんNGNG
gccコンパイラはexitもしくはmainをreturnするときに
パースツリーをfreeしていますか?
→していません。
0971デフォルトの名無しさんNGNG
freeとかしなくても動けばいいじゃん。
0972デフォルトの名無しさんNGNG
次スレ
http://pc5.2ch.net/test/read.cgi/tech/1099212476/
0973デフォルトの名無しさんNGNG
>>971
動けばいい。だけど正統ではない。
0974デフォルトの名無しさんNGNG
>>971
最悪なのは一番大事な顧客の目の前で突然動かなくなることだ。
0975デフォルトの名無しさんNGNG
正統って何だ
0976デフォルトの名無しさんNGNG
>>975
誰もが認めるような、理由があるかどうかだ。
0977デフォルトの名無しさんNGNG
>>973
正統とかそういう単語を持ち出すのなら、まずその正統を定義してくれ。
0978デフォルトの名無しさんNGNG
>>976
無いじゃん
0979デフォルトの名無しさんNGNG
>>978
一連のスレッド読んだ?
理由は十分示されたよ。
0980デフォルトの名無しさんNGNG
イルカを唐揚げにして食うようなものだな。
0981デフォルトの名無しさんNGNG
なんだ正統なCって?
Windowsで動けばいい。
ちなみに俺の好きなのはvoid main(void)だ
0982デフォルトの名無しさんNGNG
>> 979

一連のスレ読んだが、どこで理由が示されたんだ?
示されているのは、free()しない場合には移植性とのトレードオフを十分吟味しろって程度の話だぞ。
0983デフォルトの名無しさんNGNG
>>979
されてないからスレ伸びてんだろ
0984デフォルトの名無しさんNGNG
みんなわかってないなー。

必ず free() するという制限でコーディングの訓練をしてきた者が
free() しなくていい環境でコーディングするのも楽なことだ。

だけどその逆は楽じゃない。
だから必ず free() するような設計やコーディングに慣れておけば、
いずれの環境でもやっていけるってことだ。
0985デフォルトの名無しさんNGNG
free() しなくていいのは「最適化」の一部だと思えってこった。
0986デフォルトの名無しさんNGNG
なんだ正統なCって?
Windowsで動けばいい。
ちなみに俺は関数名はFUNC0001のように連番でつけている。
0987デフォルトの名無しさんNGNG
>>984
標準Cの話してるのに、なんでそんな話になるんだ?
0988デフォルトの名無しさんNGNG
結論
・したい奴はしろ
・したくない奴はするな

以上。各人の将来など知ったこっちゃない。
0989デフォルトの名無しさんNGNG
freeしなくていいとかって…
日本の情報産業、これでいいんですか?
0990デフォルトの名無しさんNGNG
>>989
freeする理由は?
0991デフォルトの名無しさんNGNG
必ずfreeしろなんて言っているのは日本人だけだろ。
0992デフォルトの名無しさんNGNG
>>990
正統な C だから。
0993デフォルトの名無しさんNGNG
>>990
OS等に依存せずにどんな環境でも正しく動くようにするため。
0994デフォルトの名無しさんNGNG
>>991
外人がどうかなんて関係ない。
正当かどうかは十分な理由があるかどうかだ。
0995デフォルトの名無しさんNGNG
しっかりfreeしたつもりでも
当のfreeが void free(void *ptr) { return; }
と定義されてるのもあるという話、聞いたことアルヨ。
0996デフォルトの名無しさんNGNG
>>995
だから何?何がいいたいわけ?
0997デフォルトの名無しさんNGNG
>>993
標準Cの話してるのに、なんでそんな話になるんだ?
0998デフォルトの名無しさんNGNG
>>995
VC++.NETはそうなっているね。
0999デフォルトの名無しさんNGNG
return 0;
1000デフォルトの名無しさんNGNG
骨折り損のときもある
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。