C言語なら俺に聞け! Part 83
レス数が1000を超えています。これ以上書き込みはできません。
0001v(^o^i)d
NGNG質問する前には最低限検索を。
GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへさようなら。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
コンパイラを探しているなら >>2-13 を。
上記を逸した場合の結果は激しく未定義だYO!
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/
各種リンクは>>3-20あたり(誰か適当に貼って)
C言語なら俺に聞け! Part 82
http://pc5.2ch.net/test/read.cgi/tech/1087049069/
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
0002デフォルトの名無しさん
NGNGgcc
http://gcc.gnu.org/
【Win32用の開発環境のみ。】
gcc-cygwin
http://www.redhat.com/software/tools/cygwin/
gcc-mingw
http://www.mingw.org
Digital Mars C++
http://www.digitalmars.com/
Open Watcom
http://www.openwatcom.com/
Borland C++ Compiler 5.5.1
http://www.borland.co.jp/cppbuilder/freecompiler/
【ライセンスや機能などに問題あり】
Microsoft C/C++ 13.0.9466(VC.NET)
http://www.microsoft.com/japan/msdn/netframework/downloads/
LCC-Win32
http://www.cs.virginia.edu/~lcc-win32/
CINT
http://root.cern.ch/root/Cint.html
めじろ++98
http://www.vector.co.jp/soft/win95/prog/se075910.html
Intel C++ Compiler for Linux
http://developer.intel.com/software/products/compilers/clin/noncom.htm
0003デフォルトの名無しさん
NGNGぼるじょあがC/C++の宿題を片づけますYO! 25代目
http://pc5.2ch.net/test/read.cgi/tech/1087929711/
環境依存:
【初心者歓迎】C/C++室 Ver.7【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1086373839/
猿:
【独習C】猿62【猿C言語教室 part7】
http://pc5.2ch.net/test/read.cgi/tech/1083765346/
GCC:
GCCについて part3
http://pc5.2ch.net/test/read.cgi/tech/1072484422/
0004デフォルトの名無しさん
NGNGしかも突っ込む機会すら与えない場所だし。
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG前スレ989です。
どうも分からないのですが、
真ん中(count==5)は、その状態の時だけ{}の中が実行されるという意味ではないのですか?
countに5が代入されてしまうのですか?
0009デフォルトの名無しさん
NGNGfor(count=0; count<=5; count) {
if (count==5) printf("count==%d",count);
}
0010デフォルトの名無しさん
NGNGforのそれはループの終了条件、
故にtrueになった時点でループから抜け実行されない
00119
NGNG0012デフォルトの名無しさん
NGNGお前もやっちまったw
0013デフォルトの名無しさん
NGNGcount == 5 → countが5ならtrue(1)。
=と==は別物
0014デフォルトの名無しさん
NGNGfor(count=0; count<=5; count++) {
if (count==5) printf("count==%d",count);
}
0015デフォルトの名無しさん
NGNGprintf("count==%d",count);
0016デフォルトの名無しさん
NGNGいやそれだったら count<5 でしょw
俺もそれでいんでね?とか思ったけど
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGテニスでいうとドロップショット打たれましたみたいな。
野球で言うとチェンジアップ打たれましたみたない。
お前ら間違えすぎ
0019デフォルトの名無しさん
NGNGえっとつまり、count==6にすればいいということですか?
include <stdio.h>
void main()
{
int count;
for(count=0; count==6; count++){
printf("abc\n");
}
}
今度はこれで試してみようとしたらvoidが構文エラーになってしまいました。。
0020デフォルトの名無しさん
NGNGいま
輝いてるぞ。
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNGうざいから、もう氏ねよ。
0024デフォルトの名無しさん
NGNGmain(void)
{
int count;
for(count=0; count<=5; count++){
printf("abc\n");
}
return 0;
}
0025デフォルトの名無しさん
NGNGC言語を使えるようになることはないと思う。あきらめれ。
0026デフォルトの名無しさん
NGNG自分のスレでやれよ
0027デフォルトの名無しさん
NGNGありがとうございます。forのことを勘違いしてたみたいです。
「countが5の時だけ表示」とするのはforだけじゃできないんですね。
#include <stdio.h>
main(void)
{
int count;
for(count=0; count<=6; count++){
if (count==5){
printf("%d\n",count);
}
}
return 0;
}
で出来ました。みなさんありがとうございました。
では。
0028デフォルトの名無しさん
NGNG代入って言い方、変じゃない?
代入かなぁ? って思うよ。
あと、"function"を「関数」って言ったりも変。
全然関数になってないfunctionもあるし。
数学の時の訳を、そのまま使っちゃってるのかな?
元は何て言葉だったのかな? 代入って。
0029デフォルトの名無しさん
NGNGほら、for だけで、できている(ように見えるだろ)。
0030デフォルトの名無しさん
NGNG変なら替わりになんて言葉を使ったらいいんだ
0031デフォルトの名無しさん
NGNGhttp://jiten.www.infoseek.co.jp/Kokugo?qt=%C2%E5%C6%FE&sm=1&pg=result_k.html&col=KO&sv=DC
0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG全然出来てない
0034デフォルトの名無しさん
NGNGfor(count=0;count<=6;if(count==5)printf("%d\n",count),count++);
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG電波はここで→http://etc2.2ch.net/denpa/
003734
NGNG0038デフォルトの名無しさん
NGNGint main(void) {
int count;
for(count=0;count<=6;if(count==5)printf("%d\n",count),count++);
return 0;
}
In function `main':
5: error: syntax error before "if"
0039デフォルトの名無しさん
NGNGだろ。
0040デフォルトの名無しさん
NGNGファイルをオープンするというのは内部的には何をやっている
のでしょうか?まさかメモリに読み込んじゃいないですよね?
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGファイル管理システムに「開いたよ」というのを登録してる。
0043デフォルトの名無しさん
NGNGOh!Yes!とかパイ乙が何か色々してる。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG{
return 1;
};
int false()
{
return 0;
};
void *null()
{
return (void *)0;
};
0046デフォルトの名無しさん
NGNGif ( n = m ) { ; }
とやるとif内の評価式はどうなるんでしょうか?n = mが正常に終了したとして 1になるのか、それとも n = mの式自体の値として5でしょうか?
0047デフォルトの名無しさん
NGNGint main(void) {
int n, m = 5;
printf("(n = m) == %d", n = m);
return 0;
}
$ ./a.out
(n = m) == 5
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNGこんな序盤で人にきいてばっかいるなよ。
先ずはマニアル読めよ。
0050デフォルトの名無しさん
NGNG0052デフォルトの名無しさん
NGNGいいトコをうpしれ
0053(・`ω´・)
NGNGkernel2.6系fsがext2なら
open(2)
sys_open
filp_open
dentry_open #ext2ならこの中で
generic_file_open
0054デフォルトの名無しさん
NGNG自分でMPIの勉強をして来いといわれたので、
Windows上で動くバーチャルマシンのようなものを
探しているのですが、いいものをご存知でしょうか?
よろしくおねがいします。。
0055デフォルトの名無しさん
NGNGワラタ
0057デフォルトの名無しさん
NGNGint main(){char a[99],b[99],*e="+-*/",*f;int s=0,c;float m=0,n;while(1){printf(
"%f :",m);fgets(a,99,stdin)?0:exit(0);if(sscanf(a,"%s",b)>0){if(sscanf(b,"%f",
&n)>0){m=s?c?c-1?c-2?m/n:m*n:m-n:m+n:n;s=0;continue;}else{if(!b[1] && (f=strchr
(e,*b))){s=1;c=f-e;continue;}}}*a-'q'?0:exit(0);puts("Input errror (type 'q' t"
"o exit)");}}
このプログラム以前作ってもらったやつだが、コンパイルできん。
コピペじゃいかんのか?
初心者で全然わからん
0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNG犬厨は環境依存スレにGO
0060デフォルトの名無しさん
NGNGここは暗号解読スレじゃないよ
0061デフォルトの名無しさん
NGNG#if 0
int main(){char a[99],b[99],*e="+-*/",*f;int s=0,c;float m=0,n;while(1){printf(
"%f :",m);fgets(a,99,stdin)?0:exit(0);if(sscanf(a,"%s",b)>0){if(sscanf(b,"%f",
&n)>0){m=s?c?c-1?c-2?m/n:m*n:m-n:m+n:n;s=0;continue;}else{if(!b[1] && (f=strchr
(e,*b))){s=1;c=f-e;continue;}}}*a-'q'?0:exit(0);puts("Input errror (type 'q' t"
"o exit)");}}
#else
int main(){return 0;}
#endif
これならコンパイルできるぞ
0062デフォルトの名無しさん
NGNGコンパイラが腐ってるんだろ。うちではコンパイル通った
0063デフォルトの名無しさん
NGNGサンクス。そっちでやってみる
>>62
悪い、もう一回やってみるよ
0064デフォルトの名無しさん
NGNGそっちのやるとコンパイラが壊れるぞ。
0065デフォルトの名無しさん
NGNGこんな書き方見たことない・・・
多分内側から順番に展開されると思うんですけど、最終的にどうなるんですか?
m = s ? m + n:
c ? m - n:
c - 1 ? m * n:
c - 2 ? m / n:
n;
インデント崩れると思いますので↑エディタにコピペして見てください
それちがう。
if (s) {
if (c) {
if (c - 1) {
if (c - 2) {
m = m / n;
}
else {
m = m * n;
}
}
else {
m = m - n;
}
}
else {
m = m + n;
}
}
else {
m = n;
}
と同じ。
0067デフォルトの名無しさん
NGNGc - 1 ? m * n:
c - 2 ? m / n:
m + n: n;
三項演算子で展開するのはここまでが限界かな。
0068デフォルトの名無しさん
NGNGとなっている場合に__TEXT("hoge")はどのような展開をされるんですか?
また、ここでの##とはどういう意味を持つのでしょうか?
Googleで検索しにくい(記号を含むため)ので、どうかご教示下さい.
0069デフォルトの名無しさん
NGNGhttp://black.sakura.ne.jp/~third/programming/c/c42.html
0070デフォルトの名無しさん
NGNGコンパイルできたが、実行してもできん
電卓のシュミレーターなんだが
0071デフォルトの名無しさん
NGNGトークン連結演算子と言うんですね。ありがとうございます
0072デフォルトの名無しさん
NGNGおしえてください。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGif(point>10){return('A');break;}
if(point>=7){return('B');break;}
if(point>=4){return('C');break;}
if(point<=3){return('D');break;}
}
この関数は正常に実行されますかね?
0075デフォルトの名無しさん
NGNG007672,74
NGNGchar hyouka(int point){
if(point>10){return('A');break;}
if(point>=7){return('B');break;}
if(point>=4){return('C');break;}
if(point<=3){return('D');break;}
}
の間違いです。
で、これは実行されますかね?
0077デフォルトの名無しさん
NGNG普通は、while, for文などから抜けるために使用します。
returnは、関数から抜けるのに使用します。
はっきり言って、>74のプログラムはおかしいと思います。
0078デフォルトの名無しさん
NGNGswitch(i) {
case 0: break;
}
}
007972,74,76
NGNGこまってます。
でも使っちゃいけないともかいてないのでさらに困るわけです。
008072,74,76,79
NGNGサンクスです。
今日のテスト激しく減点のヨカーン・・・(TT)
0081デフォルトの名無しさん
NGNGなんでふつーにswitchつかわんの?
0082デフォルトの名無しさん
NGNGの場合だと、
char hyouka(int point){
if(point>10){return('A');}
if(point>=7){return('B');}
if(point>=4){return('C');}
if(point<=3){return('D');}
}
で十分では?
returnが実行された時点で、
hyoukaという関数を抜けるので、
breakはまったく意味がないと思います。
0083デフォルトの名無しさん
NGNG008472,74,76,79
NGNG言われてみれば確かに・・・elseも必要ないみたいですね。
>>83
今日テストがあって(ペーパー)今家に帰ってきたんですが、
家ではできないんですよ。
なんとかすりゃできるのかも知れませんが初心者なもんで・・
0085デフォルトの名無しさん
NGNGK&R訳書版第二版281ページ
0086デフォルトの名無しさん
NGNGC言語ならK&Rに聞け! Part 83
に改編しました
0087デフォルトの名無しさん
NGNG明らかに釣りだな
おまえ要するに break/goto を使っちゃいけない
理由を誰かに聞かれて返答できなくて
本読んでもわからなくて、
ここへ聞きに来たんだろ
で、ご予算は?
008872,74,76,79
NGNGってうちの教授が推奨してました。
ちなみに僕は 「定本 明解C言語 入門編」
を持ってます。
ま、どうでもいいですよね。
0089デフォルトの名無しさん
NGNGその入門書はかぎりなくへぼいような気がする。。。
他の入門書を買うことをおすすめする。
009072,74,76,79
NGNG違います。いや、ほんとに。
0091デフォルトの名無しさん
NGNGみつまジャパン発見
0092デフォルトの名無しさん
NGNG009372,74,76,79
NGNGスイッチでもいいんですが、ifを使いたかったんです。
理由は、switchよりもifを先に習ったので。
0094デフォルトの名無しさん
NGNGstdinをfgetcするのがgetc。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG我々が言っているK&Rはその原書をベル研に出向していた人が訳した本
K&R以外のCの本はパチもん
0097デフォルトの名無しさん
NGNG>if(point<=3){return('D');}
は、
return('D');
でいいんだろ。
0098デフォルトの名無しさん
NGNG>言われてみれば確かに・・・elseも必要ないみたいですね。
彼(彼女?)はきっとこれをelseだと解釈しているみたい
009992
NGNGん〜、よく分からん
両方こういう書き方でfpから1文字入力。戻り値は正常なら入力された文字、エラーならEOFですよね
int getc(FILE *fp)
int fgetc(FILE *fp)
stdinが関係ありそうなのはgetsとfgetsじゃないんですか?
0100デフォルトの名無しさん
NGNG何のために break したがってるのかがわからん。
010172,74,76,79
NGNGでもいろいろわかりました。
ありがとうございました。
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGgetcはマクロを使って実装されているかもしれない。
そのため、
・副作用のある引数を渡した場合に予期しない状態になるかもしれない
・getcの関数ポインタを取得できないかもしれない
(ほかに影響があるかもしれないけど)
通常使う分にはどちらを使ってもかまわないと思うけど、どちらかと言うと
fgetcの方が安心かも。
0104デフォルトの名無しさん
NGNGどこにも過去の互換性などという言葉がでてこないから、
なにかあるがために、マクロのgetc と関数のfgetc がある
わけだよね。 あんで?
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG使わないものは忘れるのね(逃
0107デフォルトの名無しさん
NGNG>・getcの関数ポインタを取得できないかもしれない
ここらへんって標準ライブラリの仕様として何か規定があるの?
それとも一切縛りなし?
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGベンチとったこと無いから分からんが、今じゃほとんど変わらないのでは
という気もしなくは無い。
0110デフォルトの名無しさん
NGNGループ内で数億回まわしたら差が体感出来るかもしれない。
0111デフォルトの名無しさん
NGNGかもしれない。
011292
NGNG0113デフォルトの名無しさん
NGNG標準入力を扱うんであれば普通にgetcでいいと思うよ。
0114デフォルトの名無しさん
NGNGgetchar と勘違いしてない?
0115デフォルトの名無しさん
NGNGゲットカーってよむの?
0116デフォルトの名無しさん
NGNG昔は16ビットのCPUでクロック12MHzとか言ってたわけで。
マクロと関数の速度差を身をもって体験した奴も多かったんじゃないかな。
今となっては、仰せのとおりで。
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGcharacterのcharだろ?
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGchar は 「キャー」と読んでたので
ゲットキャーじゃねーの?
0122デフォルトの名無しさん
NGNGじゃあ fgets() は げっとす か?
0123デフォルトの名無しさん
NGNGネイティブな発音だとゲッキャーくらいになるのかね?
0124デフォルトの名無しさん
NGNGCのビデオなんて、
あなたはHな人ですね。
0125デフォルトの名無しさん
NGNGエフゲッツでしょ
0126ダンディ
NGNG0127デフォルトの名無しさん
NGNGttp://pc5.2ch.net/test/read.cgi/tech/1086391838/l50
0128デフォルトの名無しさん
NGNGこれはうそ。いまのMacOSでもAqua側のアプリケイションでかけばふつうに0x0dです。
そういえば、昔懐かしいOS/9も0x0dですね。MC68000用が出たところまでは覚えてる
んだけどその後どうなったのだろう?
> CP/M-86は改行コードが\r\nで、ファイル末尾のレコードは\x1bが詰められていた。
CP/Mにかぎらず、汎用機系は多かったね。末尾の0x1aは、テキストファイルにかぎった
もので、ディレクトリーにファイルサイズが書いてなかったので、セクターブロック単位
でしか、「ここが終わり」がわからなかっただめです。
> MS-DOSもファイル末尾に\x1bが付加されているのが普通だった。
これは大うそ。MS-DOSでそんなものをつけるのは、edlin.exeだけです。
(あとは、それをみて勘違いした日本のごく一部のソフトだけ。)
0129デフォルトの名無しさん
NGNG> K&Rを真似てvoid mainにしたら散々こき下ろされますタ。
こいつもウソつき。そんなことは書いてない。
0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG> 数学の時の訳を、そのまま使っちゃってるのかな?
もとの英語でも数学用語の流用的に「function」と「assign」を使っているのだから、
「函数」「代入」「添字」と訳すのは「正しい」
まあ、化学で、酸と塩基が結合してできる「塩」(えん)は、
英語ではなんていうか知ってるか?
0132デフォルトの名無しさん
NGNG0133デフォルトの名無しさん
NGNG>>128は少し参考になった。Cとはほとんど関係ないけど
0134デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
char a[99], b[99], *e = "+-*/", *f;
int s = 0, c;
float m = 0, n;
while (1) {
printf("%f :", m);
fgets(a, 99, stdin) ? 0 : exit(0);
if (sscanf(a, "%s", b) > 0) {
if (sscanf(b, "%f", &n) > 0) {
m = s ? c ? c - 1 ? c - 2 ? m / n : m * n : m - n : m + n : n;
s = 0;
continue;
}
else {
if (!b[1] && (f = strchr(e, *b))) {
s = 1;
c = f - e;
continue;
}
}
}
*a - 'q' ? 0 : exit(0);
puts("Input errror (type 'q' to exit)");
}
}
0135デフォルトの名無しさん
NGNGやーい > 訳本
へぼ
0136デフォルトの名無しさん
NGNGいまどきinline関数で実装するのがふつうだろぼけ > gets
0137デフォルトの名無しさん
NGNGつーかおまいはあれか。キーボードスレ荒らしてた阿呆か。
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG0141デフォルトの名無しさん
NGNGそれが訳本のほうだというのが、かなりはずかしい ;-)
0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNGなるべく発音が似るように
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNGa = b - 1;
のような場合でも、右辺は一旦intに格上げされるんですか?
VCで-W4でコンパイルするとウォーニング出るんですけど。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG警告でません
0150デフォルトの名無しさん
NGNG> まあ、化学で、酸と塩基が結合してできる「塩」(えん)は、
> 英語ではなんていうか知ってるか?
base
0151デフォルトの名無しさん
NGNG原書で読めよ…
0152デフォルトの名無しさん
NGNGって流石にアレは馬鹿すぎたから違うな…。
0153デフォルトの名無しさん
NGNGstruct hoge { int n = 0; };というようにしたいのですが、これではコンパイルエラーが出ます。
0154デフォルトの名無しさん
NGNGストアレンが大半かな?
0155デフォルトの名無しさん
NGNGAPIがDLLであるってだけですか?
また、マルチスレッドなプログラムではAPIは使えないって見たけど、
それはなぜですか?
0156デフォルトの名無しさん
NGNG> ランタイムライブラリとWIN32APIの特徴って何?
さあ
> マルチスレッドなプログラムではAPIは使えないって見たけど、それはなぜですか?
排他処理の問題
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGWIN32APIスレで聞いた方がよかったような
ランタイムライブラリ
ANSIで定められたもの+αを収録。なのでWindowsでない環境でも殆どは同じ関数がある。
WIN32API
ANSI C/C++はWindowsのコマンドプロンプトみたいな文字列しか入出力できない環境を想定していているから
ウィンドウ・マルチスレッドなど、Windows環境限定だったりOSとして用意しておいた方がよさそうな物だったりが中心。
0159デフォルトの名無しさん
NGNGgetcの話してんだろボケ
0160デフォルトの名無しさん
NGNGstruct hoge {
int n;
int b;
} hage[]={{0,1},{1,2}};
0161デフォルトの名無しさん
NGNGprintf("文字列%文字列");
printf("文字列\%文字列");
では,いずれも無理なのですが…。
0162デフォルトの名無しさん
NGNG0163161
NGNG0164デフォルトの名無しさん
NGNG> ストアレンが大半かな?
なんで「str」が「すとあ」なんだ?
じゃあstrcmpやstrstrもそう読むのか?
なんかstrore.hでもインクルードしそうだな。
> base
それは塩基だろ
0165デフォルトの名無しさん
NGNGgetcの話にきまってるだろ
0166デフォルトの名無しさん
NGNGとかぬかすドキュンが絶えず流れこんでくるんだが、おまえらどうにかしろよ。
最近じゃアセンブラもかけないCプログラマがいるっていう話らしいからな。
全部おまえらのせい。
0167デフォルトの名無しさん
NGNGハブラシって読んでる。脳内では。
口には出せないが…
0168デフォルトの名無しさん
NGNGハァ?
何いってんの?
よく読んでみろよ
0169デフォルトの名無しさん
NGNGprintf("%s", "文字列%文字列");
第一引数にベタ書きするなよボケ。
0170デフォルトの名無しさん
NGNGgetcはいまどきinline関数で実装するのが常識。マクロにはしない
0171デフォルトの名無しさん
NGNGふつうする。
0172デフォルトの名無しさん
NGNGprintf(s);
とか見かけるとさすがにそれはないんじゃないかと思う。
0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG0176デフォルトの名無しさん
NGNG0177デフォルトの名無しさん
NGNG改行なしputs作れよボケ。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG{
printf("%s", s);
}
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGマクロにすることによって
原 仕 様 が 守 れ な い
ようなら、それはベンダの責任範囲に属するバグだ
ユーザ側でするべきことはコンパイラのバグに対するのと同類の対策であり
決してそれが正しいと思ってはならない
0182デフォルトの名無しさん
NGNG> マクロにすることによって
> 原 仕 様 が 守 れ な い
っていうか、もともとのCのgetcはマクロで実装されてただろ
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNG僕一人では何もできないよママン・・・か?w
0185デフォルトの名無しさん
NGNGお前の言う「もともとのC」とは何のことだ
0186デフォルトの名無しさん
NGNGprintf(szStr);とかは駄目だが、printf("String");は別に良いだろ。
0187デフォルトの名無しさん
NGNGおれもそう思う
何が危険かがわかってないやつほど
#define OK (0)
return (OK);
とか書くのと同じ
ただし、リテラルを埋め込みで使うこと自体に
別な意味で抵抗がある場面もある
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGパチンコが嫌いなの?
何か理由があるのかな?
0191デフォルトの名無しさん
NGNG論理的に負けるのが分かってるからじゃない?
0192デフォルトの名無しさん
NGNG仕様では
「基本的にはfgetsと同等だけど、マクロで実装されてるかもしれないから注意してね」
だろ。
0193デフォルトの名無しさん
NGNGうるさいの嫌い
何より、そんな金ない
0194デフォルトの名無しさん
NGNG何で口語に訳す必要があるんだ? 原文がなからだろ、どーせ
0195デフォルトの名無しさん
NGNGそんなんやってる時間がない。
0196デフォルトの名無しさん
NGNGテメエわざとか?
getsとfgetsの話だって言ってんだろボケ!
0197デフォルトの名無しさん
NGNGテメエわざとか?
getsとfgetsの話だって言ってんだろボケ!
0198デフォルトの名無しさん
NGNGおお、それは見落としていた
確かにそうだ
どっちにしても同じことだが
0199デフォルトの名無しさん
NGNGバカか?とっくに気づいてたぞ。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG> #define OK (0)
> return (OK);
で、何が危険なの?
どっちもまあ括弧はいらないが、つけて「危険」だとは思えない。
(前者は(-1)とか(c + 1)とかなら括弧は必須だろうし、後者の場合は、まあ長いときに
見やすくするために括弧つける程度だろうなあ)
0202デフォルトの名無しさん
NGNGベストセラーの本の名前では?
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG>で、何が危険なの?
(・∀・)ニヤニヤ
>見やすくするために
プププ
0205デフォルトの名無しさん
NGNG名指しできない時点で終わったな
ばいばい
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG初心者の俺に是非教えてくれ
0208デフォルトの名無しさん
NGNGVBではそういうふうに書くのが流行っているのですか?
わたしがVBを使ったことがあるのはかなり昔で、そのころはそんなのは見たことなかったのですが...
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG仕様書なんか読んでないアマだから
0212デフォルトの名無しさん
NGNG志村、後ろ後ろ!
と真顔で言うタイプだな
0213デフォルトの名無しさん
NGNG#define HOGE (0)
が危険だなんて書いてなかったぞ
0214デフォルトの名無しさん
NGNGおまえ、スレよんでないだろ。
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNGinline関数なら、べつに引数の副作用なんか気をつけなくても平気でしょ?
0217デフォルトの名無しさん
NGNGfgets/fputsほどは使わないけど。(getsがすごく危険なので)
0218デフォルトの名無しさん
NGNGgetcがマクロ実装のとき、つかわないですよねfgetcにしちゃう。
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGそんなんいちいち気にしてられるか。
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG何故いけないの?szStrに%が混入しても分かりにくいから?
>>187
可読性を下げる(本人は上げようとしてるつもり)以外に悪い理由は?
0224デフォルトの名無しさん
NGNG変態の相手はごめんだ
あっちいけ しっしっ
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGptr_diffって名前が長すぎると思わない?
0228デフォルトの名無しさん
NGNGはあ? こいつバカか...
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGでファイルから読み込みを行って,その次に書き込みを行おうとするときに
fopenやfflushを使用しないとうまくいかないというのは何故でしょうか.
0231デフォルトの名無しさん
NGNGWin32APIプログラミングやればWIN32_FIND_DATA型なんてのも出てくるからもう慣れた
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGほう、俺が都合が悪くなったらそんなに嬉しいか
あんたに出来ないことをやってくれるスーパーマンでも現れたか?
0234230
NGNG訂正
fseekやfflush
0235デフォルトの名無しさん
NGNGあのー、ここは質問スレなんですけど。変態初心者の巣ですよ。
>>223の後者のほうは
#define BEGIN {
#define END }
if (hoge) BEGIN
.....
END
と同様なんじゃないかと。アホかと思う書き方だがなんとか読んで読めなくはない。
ただ唯一違うのは、関数が正常値として0を返す物だと決めてかかってること?
0236230
NGNG元々あったファイルに別の内容を挿入したいのですが,fopenでmodeにr+を
指定すると,元々あったデータが上書きされて消えてしまって困っているのですが
解決策は何かあるのでしょうか?
ちなみにファイルに出力したいのはstdinの内容でそのフォーマットは特に決まって
おりません.
0237デフォルトの名無しさん
NGNGhttp://www.kouno.jp/home/c_faq/c12.html#30
この辺のこと?
0238230
NGNGありがとうございました.
どうやら私がやろうとしていることは無理なようでね.
別の方法を考えます.
0239デフォルトの名無しさん
NGNG/* 見つからなかった */時の、登録手続きが変な気がするのですが。
0240デフォルトの名無しさん
NGNGC言語をCASL�Uに書き換え可能なソフト知ってる?
0241デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1087897801/128
0242デフォルトの名無しさん
NGNGしかし、
0243デフォルトの名無しさん
NGNGお前はプログラムングにむいてないから、
なるべく早い段階で手を引いた方がいいよ。
0244デフォルトの名無しさん
NGNGint i;
for(i = 0; i < 10; i++)
++phoge = (struct hoge *) malloc(sizeof(struct hoge));
というようなコードをgccでコンパイルすると、左辺が異常としてハネられます。
for(i = 0; i < 10; i++) {
++phoge;
phoge = (struct hoge *) malloc(sizeof(struct hoge));
}
のようにポインタのインクリメントとメモリ割り当てを別々に行うと大丈夫です。
最初の書き方に曖昧な点は無いと思うんですが、何がいけないのですか?
出来れば一行にすっきりまとめたいと思うのですが…。
0245デフォルトの名無しさん
NGNG韓国が嫌いな人が多いんですかね?
私の知り合いのプログラマもみんなして
韓国が嫌いとか言っているのですが。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGプログラマは韓国が発祥の地だからですよ
0248デフォルトの名無しさん
NGNG勝手にコード拾って組み込んだり(しかもGPL!!)無能だし
いったい韓国人はどうなってるんだ。
0249デフォルトの名無しさん
NGNGfor(i = 0; i < 10; i++, phoge++)
phoge = (struct hoge *) malloc(sizeof(struct hoge));
でいいじゃん。
0250デフォルトの名無しさん
NGNGそもそも、そんなプログラムを書いたらだめだ。
0251デフォルトの名無しさん
NGNG++phoge = (struct hoge *) malloc(sizeof(struct hoge));
あなたを意図にわからん
というのと同じくらい無茶苦茶だ
0252デフォルトの名無しさん
NGNGでいいんじゃねーの?
0253デフォルトの名無しさん
NGNG○sizeof
0254デフォルトの名無しさん
NGNGHHKを使ってるんでほんの少しのタイプミスで書き込み全部消えちゃう。。。
仕方ないから長文を書くときは他のエディタで編集してコピペしてるけど、これじゃ2chブラウザの意味半減。。
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGチョコラBB?
0257244
NGNG>>249
malloc()の左辺でやるのは無理ということでしょうか?
>>250-251
動的に数の決まる構造体にメモリを割り当てつつそれらを初期化する関数を書いているんですが、
こういう場合普通はどうするものなんでしょうか。単純に二つ以上の文に分割するものですか?
>>252
上に挙げた理由で、それは難しいです。
phoge = malloc(sizeof(struct hoge) * countNeededStructures());
というようにすれば出来なくはないと思いますが、この場合あまり意味がありません。
と言ってしまえば一文に詰め込むのにもたいした意味は無いんですけど…。
0258デフォルトの名無しさん
NGNGお前がやりたいのは↓じゃねーか?
struct hoge *phoge[10];
int i;
for(i = 0; i < 10; i++)
phoge[i] = (struct hoge *) malloc(sizeof(struct hoge));
0259デフォルトの名無しさん
NGNGあーあ、こたえちゃった。芋づる釣りシュウリョー。
0260デフォルトの名無しさん
NGNGそれをやるなら>252でも同じ。
ほんとに動的にメモリ確保するなら、リスト構造とかで管理しなきゃだめだ。
0261デフォルトの名無しさん
NGNG>phoge = malloc(sizeof(struct hoge) * countNeededStructures());
>というようにすれば出来なくはないと思いますが、この場合あまり意味がありません。
なぜ意味がないのか言ってみろ。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0264244
NGNG一応、領域をポインタ列として確保することでリスト構造のようなものを目指しているんですが、それが間違いの元なのかもしれません。
>>261
最初に必要となる構造体数を数えずに「まだ構造体が必要か?」「要る」「じゃ、割り当てる」という方向性を取っているから、です。
つまり、必要となる構造体数を数え上げるのに必要な時間・空間コストをケチるために必要性判定と割り当てを並行してやっています。
>>263
余計な部分を省いて論点"インクリメントしたポインタへのmalloc()が許されないのは何故か?"を明確にするつもりでした。
実際のコードでは構造体が必要かどうかの条件判定をしています。
0265244
NGNG最初に必要となる構造体数を数えずに「まだ構造体が必要か?」「要る」「じゃ、割り当てる」という方向性を取っているから、です。
つまり、必要となる構造体数を数え上げるのに必要な時間・空間コストをケチるために必要性判定と割り当てを並行してやっています。
+予め必要数を計算する方式にすると、計算に使ったデータ(構造体初期化に使う)の保存場所として別に領域群を確保する必要が出る等、
+更に煩雑化してしまいますので、出来れば避けたいのです。そういう状況に陥る事自体がおかしいのかもしれませんけど、残念ながら
+他の解決法を思いつきませんでした。
0266デフォルトの名無しさん
NGNG普通に考えられる方法はは2つ。
1.>>258 のように、あらかじめポインタの配列を確保しておき、その配列にmallocで確保した領域へのポインタを入れていく。
2.リンクリストと、その処理関数をつくり、確保した領域へのポインタをnodeに持たせて管理する。
0267デフォルトの名無しさん
NGNG> 必要となる構造体数を数え上げるのに必要な時間・空間コストをケチるために必要性判定と割り当てを並行してやっています。
の片鱗もうかがえないのだが。
0268デフォルトの名無しさん
NGNG> #define END }
> と同様なんじゃないかと。
だーかーらー...そんな定義するのはアホだってば、
2行めが違ってるじゃん。
0269デフォルトの名無しさん
NGNG空白あけろ ぼけ
> phoge[i] = (struct hoge *) malloc(sizeof(struct hoge));
空白あけるな ぼけ
0270デフォルトの名無しさん
NGNG妹の名前はコンパイラ
0271デフォルトの名無しさん
NGNGもったないのでわたしにください。
0272デフォルトの名無しさん
NGNGそれが「動的メモリー割り当て」の醍醐味ってもんだろ?
0273244
NGNG割り当てられた各構造体に力関係や順序関係は必要無いため、リンクリストの特徴である"データの挿入・削除の容易性"
を使う必要は無いと判断しました。一方で単純に数決め打ちでのポインタ列確保で無駄にメモリを消費する必要も、
オーバーフローの危険性を持たせる必要も無いと考えました。ポインタに使うメモリ等微々たるものですので、どちらかというと
オーバーフローを気にした結果です。
丁寧にお答えいただいておいて申し訳ないのですが、>>264に書いた通りそれは枝葉の部分です。
>>267も同様です。
0274デフォルトの名無しさん
NGNG> さらに、プログラムの書き方に関する見解は所詮見解にすぎない。" 書き方論争(style wars)"に引きずり込まれても、たいてい何も産み 出さない。
0275デフォルトの名無しさん
NGNGint i;
hoge = malloc(sizeof(struct hoge*)*10);
for(i = 0; i < 10; i++){
*(hoge++) = malloc(sizeof(hoge));
}
がやりたいのか?
0276デフォルトの名無しさん
NGNGあのさ >>244 は、ポインタ配列確保せずに phoge をインクリメントしている。
つまりは宣言も確保もしていないメモリ領域を破壊するプログラムだってことわかってる?
struct *phoge; で確保されるのはポインタ変数1つだけ。
一つしか確保していないのに、インクリメントしたらどこへ行くと思ってんの?
0277デフォルトの名無しさん
NGNGかっこつけてメモリの消費とか、オーバーフローとか言う前に
とりあえず基礎からやり直したほうがいいと思う。
0278デフォルトの名無しさん
NGNG> 書き方に曖昧な点は無いと思うんですが、何がいけないのですか?
おまえぼけすぎ。「左辺値」ってものがまったくわかってない。
phoge++ = (struct hoge *)malloc(sizeof(struct hoge));
って書いてためしてみろよ! (mallocの前に空白あけるんじゃないぞ!)
0279デフォルトの名無しさん
NGNG×struct *phoge;
○struct hoge *phoge;
0280244
NGNGまさにその通りでした。ポインタ自体の領域確保を怠っていました。
しかし必要なポインタの数も最初から分かっていない場合はどうすれば良いのでしょうか。
今ひとつ理解出来ていないので少し考えてみます。
>>278
残念、同じ結果です; error: invalid lvalue in assignment
0281デフォルトの名無しさん
NGNG>しかし必要なポインタの数も最初から分かっていない場合はどうすれば良いのでしょうか。
だからリストつかえよ。
0282デフォルトの名無しさん
NGNG>>266 の 2.
0283デフォルトの名無しさん
NGNG最初からわかってないのなら、適当に引数で受けるようにすればよかろう。
一度確保した後に追加するような場合には reallocなどを使ってサイズを
変更するか、リスト構造あたりを使えばよい。
0284デフォルトの名無しさん
NGNGリンクリストとかで検索かけたほうが良いとおもわれ。
0285244
NGNGなるほど! 疑問が氷解しました。realloc()でサイズを変更するリスト構造を使ったほうがスマートに出来そうです。
ありがとうございました。
>>284
構造体内に次の構造体へのアドレスを格納してチェーン式に構造体群を繋ぐ方法だと考えていますけど、間違ってますかね。
0286デフォルトの名無しさん
NGNG>realloc()でサイズを変更するリスト構造
ハァ?
0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNG神コロさんみたいに合体させるなよ。コーヒー噴出しちゃったじゃないか。
0290デフォルトの名無しさん
NGNGこんばんわrealloc初心者です。
今年新卒で記念に初めてreallocを使おうと思っているのですが
俺の尻の穴に貴方の野太いちんぽぶち込んでくれませんでしょうか?
今が旬のオススメrealloc使用法なんかを教えて欲しいです。
よろしくお願いいたします。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG質問する前に、ちゃんとCの入門書ぐらい読めよ ぼけ
0293 ↑
NGNG0294デフォルトの名無しさん
NGNGそうだな
0295デフォルトの名無しさん
NGNG質問と確認は違うだろう。
>>293
sageてるだけで、やってる事は余り変わら内気ガス。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGここ==2ch
0299デフォルトの名無しさん
NGNGfreopen("hello.txt", "w", stderr);
fputs("hello\n", stdout);
fputs("bye\n", stderr);
これを実行してから hello.txt の中を見ると「bye」しかありません。
"hello.txt" のかわりに "con" にすれば「hello」も表示されるのですが、
なぜでしょうか?
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGNGワードに登録しておいてたほうがいいよ
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGサービスのこと?
0306303
NGNG昔のスレにそんなことが書いてあった。
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG暗黙の型変換をさせない方法ってありますか?
float型の変数に右辺の値(int型の変数)を↓の様な感じになるようにただのビット列として代入したいんですが・・・
int i=1のとき、
floatの中身のビット列:0x0001(これだといくつになるか分かりませんが)
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGえーと、詳しく言ってしまうと誰が見てるか分かりませんのでアレなんですが、
int→floatのキャストの真似事をしないといけないんです。
0311デフォルトの名無しさん
NGNGunion?
0313デフォルトの名無しさん
NGNG結果が全く違うぞ(w
0314デフォルトの名無しさん
NGNGなんか不味かったですかね?
意図した動作はしてるんですが・・・
0315デフォルトの名無しさん
NGNG気にするな。
しいて言うなら、310の説明の仕方がまずかったんじゃないか?
0316デフォルトの名無しさん
NGNGint→floatのキャスト、ビット値で等しくするのとは違う
整数値1を1.0みたいに浮動小数点形式で表現し直す事
>意図した動作
ならいい
0317デフォルトの名無しさん
NGNGポインタ使っても型のキャスト使ってもやれるだろうけど。
0318デフォルトの名無しさん
NGNGできないだろがヴォケ
0319デフォルトの名無しさん
NGNG*((int*)&f) = 0x00000001;
0320デフォルトの名無しさん
NGNGそりゃ"ポインタ使って"の話だろ?
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNG書けるとしたら、どのようなものまで作れますか?
hello WorlD程度しかできませんか?
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGデータ処理諦めて、
簡単なプログラムならかけないこともないとは思うけど
真夜中の暇つぶり質問でしゅか?
0325デフォルトの名無しさん
NGNGとかやれば簡単な計算なら出来るけど、
gets(buffer);
double x = atof(buffer);
double y = sin(x);
printf(%d", y);
とほぼ同じコードが生成されるだけなんだが。
0326デフォルトの名無しさん
NGNG「代入は不要。むしろ有害。」と言ったえらい人がいたような。。。
0327デフォルトの名無しさん
NGNGa ^= a;
a |= 5;
も駄目だったらいやだな。
0328デフォルトの名無しさん
NGNG細かい関数だらけになるが…
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGなんてどうよ。
0331デフォルトの名無しさん
NGNG浮動小数点のときどうするのよ。
0332デフォルトの名無しさん
NGNGそこで登場するのが308からの流れだな!
0333デフォルトの名無しさん
NGNG推奨NGワード:
「空白あけろ」「空白あけるな」「ぼけ」「ボケ」
0334デフォルトの名無しさん
NGNG00 00 00 01
というバイナリファイルを
fread(i,sizeof(int),1,fp);
このように読み込んだ時、i には 16777216(01 00 00 00)が代入され、バイト単位で逆転してるようです。
これを防ぐ関数や一発で元に戻す演算、関数などがあれば教えて欲しいです。
0335デフォルトの名無しさん
NGNGリトルエンディアンは反転します。
読み込んだ跡に、2byte単位で反転させるべし。
LOWERとかintの上位2バイト、下位2バイトを取得する
ようなもんがあったきが・・・・BCBでしかやったことないのですが。
VCLならgetLowerみたいのあったとおもうんですが。。。
すみません、最近さわってないので(^^;
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGgetLowerとLOWERって聞いたことないんで調べたんですけどいまいち分かりません(汗
BCCでプログラミングしてるのでBCBでできるならBCCでも出来ると思うんですけど・・・
0338デフォルトの名無しさん
NGNGわざとスルーしてるのか
0339デフォルトの名無しさん
NGNGi = MAKELONG(MAKEWORD(LOBYTE(LOWORD(i)), HIBYTE(LOWORD(i))), MAKEWORD(HIBYTE(HIWORD(i)), HIBYTE(HIWORD(i))));
0340デフォルトの名無しさん
NGNG書き込みしてる間に書き込まれたみたいです
>>339
すいません;関数が定義されてるヘッダが分かりません;
というかその関数ってBCCで使えますか?
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNGでもさ、実際問題としては
関数とも言えるんじゃないかな?
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGまぁどっちにしろ定義されてるヘッダがないんです;
もう自分で関数作ってしまおうと思います;
お騒がせしましたm(_ _)m
0347デフォルトの名無しさん
NGNG一応どういう働きをするかは分かってるつもりです;
0348334
NGNG{
int RetNum = 0,i;
// byteサイズが1〜4以外の時エラー
if((size<1)&&(size>4)){
return 0;
}
for(i = size-1;i >= 0;i--)
RetNum |= (( Num & (0xFF << (8*i)) ) >> (8*i)) << (~i * 8);
return RetNum;
}
とりあえずこんな感じに作りました。
お騒がせしました;;
0349デフォルトの名無しさん
NGNGsizeofって知っている?
0350デフォルトの名無しさん
NGNGwindows.h
0351334
NGNGint型とかOSによってサイズが違うとか聞くので動作不安定になりそうで・・・
(まぁ他のOSに移植したりしませんけどね)
>348のソースバグがめっちゃありました;;
0352デフォルトの名無しさん
NGNG知っていたら↓こんなまぬけなコードは書かないよ。
int ByteReversal(int Num,int size)
{
int RetNum = 0,i;
// byteサイズが1〜4以外の時エラー
if((size<1)&&(size>4)){
return 0;
}
0353デフォルトの名無しさん
NGNG0354334
NGNGif((size<1)&&(size>4))
このif文の事いってるんなら&&と||を思いっ切り間違えてます;;
なんかバグで失敗してますけど最初はshort intにも対応させるつもりで書いてたのでsizeはどっちみち受け取らないとダメだと思います。
voidポインタはいちいちポインタ型で扱うのがめんどくさかったので第二引数でサイズを指定してもらってます。
まぁ言うまでもなくsizeof()でNumを指定してもshortを検出できないので;
0355デフォルトの名無しさん
NGNGshort intに対応って、Numはint型じゃないか。
0356334
NGNG0357デフォルトの名無しさん
NGNG>>336と同じもの。
0358334
NGNGその時はint型の下位2byteだけをひっくりがえせばそれで済むかなぁ・・・と
でもやっぱりforループを2回に分けたりサイズによって処理変えたりするべきでしたね(- -;
0359339
NGNG339は間違いだった。MAKELONG/WORDの左右が逆だった。んで直すとこう
i = MAKELONG(MAKEWORD(HIBYTE(HIWORD(i), HIBYTE(HIWORD(i)))), MAKEWORD(HIBYTE(LOWORD(i)), LOBYTE(LOWORD(i))))
0360デフォルトの名無しさん
NGNGだったら>>357みたいに2バイト版と4バイト版を両方作ったら
0361デフォルトの名無しさん
NGNGほれ、int版だ。これ見てshortも作るよろし。
int ByteReversal(int num){
void *vp;
int nbyte = sizeof(int);
vp = #
for(int i =0; i<nbyte/2; i++){
*(unsigned char *)vp ^= *((unsigned char *)vp+nbyte-1);
*((unsigned char *)vp+nbyte-1) ^= *(unsigned char *)vp;
*(unsigned char *)vp ^= *((unsigned char *)vp+nbyte-1);
nbyte--;
}
return *(int*)vp;
}
0362334
NGNG頑張って作りたいと思います;
0363デフォルトの名無しさん
NGNG職業病?;
0364334
NGNG別にそんなことありませんよ
というか高校生で、プログラミングも趣味です。
>>334
せっかく作ってくれたんですけど無理にループを使わずswitch()つかったら一つの関数で済むように普通に作れました;
int ByteReversal(int Num,int size)
{
int i;
unsigned char cNum[4];
// byteサイズが2〜4以外の時エラー
if((size<2)||(size>4))
return 0;
for(i = size-1;i >= 0;i--)
cNum[i] = ( Num & (0xFF << (i*8))) >> (i*8);
switch(size){
case 2:
return (cNum[0]<<8)|cNum[1];
case 3:
return (cNum[0]<<16)|(cNum[1]<<8)|cNum[2];
case 4:
return (cNum[0]<<24)|(cNum[1]<<16)|(cNum[2]<<8)|cNum[3];
}
}
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG{
int ret, i;
for(i = 0; i < sizeof(int); i++)
*((unsigned char *)&ret+i) = *((unsigned char *)&n+sizeof(int)-i-1);
return ret;
}
行数減しただけ、トリッキーな上に無駄
0367デフォルトの名無しさん
NGNG0368334
NGNGえ・・・
一番簡単にしかも効率的に作ってる・・・
0369デフォルトの名無しさん
NGNGどの辺が無駄なの?
0370デフォルトの名無しさん
NGNGおそらく、ビット演算よりも都度代入(メモリコピー)を複数回ループでやってる点を言ってるんじゃないかな。
その点ではswitchのハードコードのほうが”効率”はいいように思う。
0371334
NGNGめっちゃわかりやすいですw
ありがとう御座いました。
0372デフォルトの名無しさん
NGNGこんなのはどう?
int ByteReversal(int num){
union{
int n;
char c[4];
} a,b;
a.n=num;
b.c[0]=a.c[3];
b.c[1]=a.c[2];
b.c[2]=a.c[1];
b.c[3]=a.c[0];
return b.n;
}
0373370
NGNG遅くなるかも・・・と思い実際にベンチ取ってみた。
コードはこんな感じ。
int main() {
int i, j;
for (i = 0; i < 10; i++)
for (j = 0; j < 16777216; i++)
>>364 ByteReversal(j, sizeof(int));
>>366 ByteReversal(j);
return 0;
}
結果(最適化無し)
>>364
real 0m8.529s
>>366
real 0m6.958s
結構、圧倒的な差がついた。switchの余計な分岐分かと思い、switchを無くして4byte決め打ちでやってみたが
real 0m8.943s
一方、最適化(-O2)かけると上から順に
real 0m5.058s
real 0m3.009s
real 0m4.816s
0374370
NGNG0375デフォルトの名無しさん
NGNGウホッ わかりやすい
0376デフォルトの名無しさん
NGNGTCP/IPネットワークバイトオーダーと同じ、ビッグエンディアンのデータだとわかってるのなら
socketの関数使うのが簡単だよなあ。つまり>>336か。
そうでなきゃ
unsigned char src[4] に読み込んで
(src[0] << 8*3) + (src[1] << 8*2) + (src[2] << 8*1) + (src[3])
あたりが無難。
0377デフォルトの名無しさん
NGNG結構時間かかるかもね
0378334
NGNGあ〜共用体使う方法かぁ
それも有りですねw
>>373
私が書いたソースが遅くなるのは明らかだとw;
switch以前にメモリコピーの数は一緒ですけどシフト演算とか余計に使ってたらそれだけ遅くなりそうな・・・
0379デフォルトの名無しさん
NGNGCPU依存だが、いまどきのCPUなら普通何ビットシフトだろうと同一サイクルかと
0380デフォルトの名無しさん
NGNGx<<31とx<<1とで処理時間が変わるわけないだろ。
0381デフォルトの名無しさん
NGNG0382デフォルトの名無しさん
NGNGそれはわからん
0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNGbswapは確か32bit限定のはず
0387デフォルトの名無しさん
NGNG0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNGプリキュア見てない奴っているか?
0390デフォルトの名無しさん
NGNG「正しい」順序で入ってるだけじゃん。
同じプログラムで読んで書く場合でもないのに
freadやreadでintのアドレス渡すのがそもそも間違い。
バイト単位で読め(もしくはバイトの配列)
0391デフォルトの名無しさん
NGNG何それ?
0392366
NGNGその上、処理系によって動k(ry
#include <limits.h>
#define ByteReversal2(x) (((x&0xFF)<<8)|((x&0xFF00)>>8))
#define ByteReversal4(x) (((x&0xFF)<<24)|((x&0xFF00)<<8)|((x&0xFF0000)>>8)|((x&0xFF000000)>>24))
#if UINT_MAX == 0xFFFFFFFF
#define ByteReversal ByteReversal4
#elif UINT_MAX == 0xFFFF
#define ByteReversal ByteReversal2
#else
#define ByteReversal(x) x
#endif
>>364
よく見たら高校生だったのか…(・∀・)人(・∀・)ナカーマ
0393デフォルトの名無しさん
NGNG括弧つけろ ぼけ
0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG0396366
NGNG忘れてた( ´・ω・`)
0397デフォルトの名無しさん
NGNGinline int SwapByte2(int x)
{
return ((x & 0xff) << 8) | ((x & 0xff00) >> 8);
}
これなら括弧いらない。
0398デフォルトの名無しさん
NGNG0400デフォルトの名無しさん
NGNG(前置ならともかく)
0401334
NGNG0402デフォルトの名無しさん
NGNGたいがいの処理系では同じだが、
たまに関数のほうが速かったりするからおもしろい
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNG0405334
NGNG0406デフォルトの名無しさん
NGNG0407デフォルトの名無しさん
NGNGinlineとマクロどっちが良いかと思って
マクロを選んだわけですが…
やっぱ俺はへたれヽ(゚∀。)ノ
0408デフォルトの名無しさん
NGNGでかすぎ...Unicode<->SJISの変換とかで「しかたなし」に使うサイズだぞ
0409デフォルトの名無しさん
NGNG> マクロを選んだわけですが…
そう思うならまず試せよ!
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG4Byteで足りると思っているだろ
0412デフォルトの名無しさん
NGNG高々256kbじゃねーかw
0413デフォルトの名無しさん
NGNGキュッシュミス多発でほぼ確実に遅くなるぞ、そのサイズはw
0414デフォルトの名無しさん
NGNGたったこれぐらいの処理に256KB…
完成後のソフトは何GBの予定ですか?
0415デフォルトの名無しさん
NGNGint table[65536], from, to;
/* 熱心にテーブル作り */
from = 12345;
to = table[from];
0416デフォルトの名無しさん
NGNG馬鹿っぽいから、そういうこと言うのは2ちゃんねるだけにしとけよ。
0417デフォルトの名無しさん
NGNG+unsigned int table[65536], from, to;
/* ええい、負の値なぞ入れられてたまるか! */
0418デフォルトの名無しさん
NGNGおまいも相当阿呆な希ガス
0419デフォルトの名無しさん
NGNGムダにレス重ねないでいいように、何が、どういった理由で、も一気に書きなさい
0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNG・テーブルは実行時生成すりゃファイルサイズなんてほとんど食わない
・以下延々とネタにマジレス
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGも前ら会議で本論と関係ないことのたまって白い目で見られるクチだろ?
0424デフォルトの名無しさん
NGNGshortなら16bitのとこも多いんじゃない?
0425デフォルトの名無しさん
NGNGメモリ空間、処理速度共に普通にビットシフト等した方が効率よいからね。
0426デフォルトの名無しさん
NGNG実行時に生成させる過程で、そもそもテーブルいらねぇじゃん、と気づけ。
0427デフォルトの名無しさん
NGNGこんな画像見つけたけど、番宣にノシとか使ってるの?
http://www3.tok2.com/home2/itatisan/cgi-bin/src/itachi2961.jpg
0428デフォルトの名無しさん
NGNG上と下の画風違いすぎん?
0429デフォルトの名無しさん
NGNGhttp://www3.tok2.com/home2/itatisan/cgi-bin/src/itachi2936.jpg
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG{
int n,m;
for(n=1;n<=4;n++)
{
for(m=n;m<=3;m++)
{
if(x[m] > x[m+1])
swap_data(&x[m],&x[m+1]);
}
}
return;
}
このままだと、なぜか最初のx[0]がスワップされません。
5,6,1,3,7と入力すると5、1,3,6,7とソートします。
んで、n=-1とすると、ちゃんと順番に表示してくれるのは、なんででしょう?
0432431
NGNG×n=1
○n=0
×n<=4
○n<=3
0433デフォルトの名無しさん
NGNG{
int n,m;
for(n=0;n<=3;n++)
{
for(m=n+1;m<=4;m++)
{
if(x[n] > x[m])
swap_data(&x[n],&x[m]);
}
}
return;
}
こうとか?
0435デフォルトの名無しさん
NGNG5 > 6 ⇒ 5 ←→ 6
6 > 1 ⇒ 6 ←→ 1
:
6 > 7 ⇒ 6 ←→ 7
n = 1
1 > 3 ⇒ 1 ←→ 3
:
:
1周目で5が先頭に残ったまま
0436デフォルトの名無しさん
NGNG○ if(x[n] < x[m])
0437デフォルトの名無しさん
NGNG○ if(n[x] < m[x])
0439デフォルトの名無しさん
NGNG○ if(*(n+x) < *(m+x))
04403日悶えた。
NGNG下記2つのルーチンの相性が悪いみたいです。
PICT make_picstrct(int tbl[]);/* PICT構造体を作る。最終的なEPS図版の作るわけではない。 */
void ComposeFile(PICT picture); /* PICT構造体のパラメータからEPSファイルを組み立てる */
main()内で、
newpics[0] = make_picstrct(table[0]);/* 成功 */
ComposeFile(newpics[0]);/* 怪しい? */
newpics[0] = make_picstrct(table[0]);/* 失敗 */
のようにした場合、1回目のmake_picstrct()は成功し、次のComposeFile()でポストスクリプトファイルを出力することが出来ます。
しかし、そのあとでもう一度make_picstrct()を呼び出すと、make_picutstrct内で宣言しているポインタが、異常に小さなアドレスを指すようになってしまいます。
04413日悶えた。
NGNGデバッガで追ってみると、1度目にmake_picstrct()を呼び出したときは
(gdb) print xax
$1 = (int *) 0xbfe809e4
となっているのですが、2度目に呼び出すと、
(gdb) print xax
$2 = (int *) 0x2
となります。エラーは下記です。
Program received signal SIGSEGV, Segmentation fault.
0x08048912 in make_picstrct (tbl=0xbfe802c0) at mini.c:159
159 *xax = 0;
(gdb) print *xax
Cannot access memory at address 0x2
ちなみにmake_picstrct()だけループしても[]内を変数にしてもセグメンテーション違反は起きません。
04423日悶えた。
NGNGどこまで略せばいいのか、どこまで詳しく書けばいいのかわからず、すみません。
ああ、あれかも、となにか思いついたらご教授ください。
重要な部分で不明な点もあればご指摘ください。
0443デフォルトの名無しさん
NGNG「たぶん tableを破壊してるんじゃねーの」くらいしか言えん。
原因はComposeFileのバグかもしれないし、
呼び出し側で適切にメモリ確保してないからかもしれないし、
make_picstrctの直後でComposeFileを呼んではいけないという仕様かもしれない。
0444デフォルトの名無しさん
NGNGソース晒すのイヤでしょ?
あと3日悶えてください
0445デフォルトの名無しさん
NGNG#include <stdlib.h>
int main (void)
{
int val, sum = 0, num = 0, heikin;
FILE *fp;
fp = fopen("seiseki.txt","r");
if(fp == NULL)
{
printf("open error!!\n");
exit(1);
}
while(!feof(fp))
{
fscanf(fp, "%d", &val);
sum += val;
num++;
}
fclose(fp);
heikin = sum / num;
printf("平均値は%3d\n", heikin);
return 0;
}
をコンパイルして実行すると「毎度お騒がせしますエラーです」みたいなのが出てきます。
どこが悪いのか教えてください。seiseki.txtの中身は
10
20
30
です。
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG04493日悶えた。
NGNGありがとうございました。
例の3つの関数の各前にprintf("unko");と入れるとちゃんと動作しました。
呪われています。
と、いうことで、どこかがアドレスを破壊しているようなのであと3日悶えてみます。
それでもダメならソース丸投げのほうでおねがいしてみます。
0450デフォルトの名無しさん
NGNGレスありがとうございます。って、事はうちのPCがおかしいってことなんでしょうか。
コンパイラは出来るのですが実行すると「問題が発生したので....」が出るのですが。
プログラム的に問題ないなら面倒なので次の学習過程に移ります。どうもありがとうございました
0451デフォルトの名無しさん
NGNGそれってよ、ファイル名のとこがちげぇんでね
"C:/unko/unko1/ファイル名"
とかさあ
"../unko/ファイル名"
ってな感じじゃね
0452デフォルトの名無しさん
NGNG0453451
NGNGそれかあれだ
foef関数でいいんだっけ?
その関数定義してやんなんといけんでしょ
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGそのコードで起きるとしたら0除算エラーかな?
0456デフォルトの名無しさん
NGNG×foef
○feof
0457デフォルトの名無しさん
NGNG除算エラーも出ないと思うよ
0458デフォルトの名無しさん
NGNGwhile(!feof(fp)) がおかしいですね。
while(feof(fp))に直したら動きました。
どうもfeof()を反対の意味で認識してたようです。
皆様レスありがとうございました
0459デフォルトの名無しさん
NGNGfscanf(fp, "%d", &val);
が失敗してるってことはない?scanf()が何かとトラブルの元の悪寒。
0460459
NGNG0461デフォルトの名無しさん
NGNG> heikin = sum / num;
ループを一回も通らなかったらnumは0だから
0除算起きると思ったんだけど、何故出ないんでしょう?
0462デフォルトの名無しさん
NGNGデータ無しで通すようなテストしてないんじゃ
0463デフォルトの名無しさん
NGNGwhileをかならず一回通ってるからnumがインクリメントされてます。
>>458
while(feof(fp))
なんかしたら逆にエラーでますけど;
0464デフォルトの名無しさん
NGNG0465458
NGNGwhile(feof(fp)==0)です。これにしたら動きました
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNGなんでこっちでよくてあっちでダメなんだろう・・・エロい人助けて
0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNGNOT演算は真を偽に、偽を真にしますからそれでwhileでループするって感じです
(自分もややこしくて忘れる時があるのでいつもwhile(1)で無限ループって覚えてます;)
0474デフォルトの名無しさん
NGNG内部展開とかしてないと思うけど
0475デフォルトの名無しさん
NGNGあまり初心者をいじめないでくれ。マジで判らなくなってきた。ちと整理しよう・・
feof()は「ファイルの終わりだったら1を返す。まだだったら0を返す」
!feof()は「ファイルが終わってなかったら1を返す」
だからwhile(feof(fp)==0)は「0が返ってくるうちは繰り返し」で・・・
ってとこまではあってるんディスカ?
んでwhile(!feof(fp))は「ファイルが終わってなかったら1が返ってきて、1は真だから無限ループ」
だからやっぱ>>445はおかしくないのかな何も。もういいや動いたし・・
0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG比較演算の結果は1or0だが他のものはプログラマが好き勝手に決められるわけで。
返り値0を正常終了とする関数も一杯あるでしょ。
0478デフォルトの名無しさん
NGNGif(expr)
where "expr" is any expression at all, the compiler essentially acts as if it had been written as
if((expr) != 0)
0479デフォルトの名無しさん
NGNG※ ただいま、ネタとマジの区別のつきにくい方にはオススメ出来ない状況となっております。ご注意ください。 ※
0480デフォルトの名無しさん
NGNG0481デフォルトの名無しさん
NGNG"ない" が 0 "否定" "No" "偽"
と覚えるといいと思うんだが。
0482デフォルトの名無しさん
NGNGと余計混乱するようなことを言ってみる。
0483デフォルトの名無しさん
NGNG04843日悶えた。
NGNG自己解決しました。make_pictstrctという自分で書いた関数のバグでした。
その下位のルーチンに変数を渡す方法をしくじってました。
intで宣言して&で渡さなきゃならんところを、int型ポインタで宣言して
そのまま放り込んでました。
3日間も・・・なさけないっす。ご鞭撻サンクスでした。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGfeofはデータが"ある"ときに0を返します。
0487デフォルトの名無しさん
NGNGあってると思いますよ
==、!=、!はその条件にあわせて真と偽を返しているだけで、ifは真と偽を区別してるだけだと思います。
if(1)とかwhile(1)はそのまま真を渡してるから動作します。
0488デフォルトの名無しさん
NGNGエラー内容を数値として返す時は0で"ある"とか"成功"の方が好都合だからじゃないの?
0489デフォルトの名無しさん
NGNGif (1 != 0)
while (1 != 0)
というように扱われ、この結果は真であるから通るわけで。別にここは0以外の値(すなわち非零の値)ならば何でもいい。
0490デフォルトの名無しさん
NGNGなんてのも真なので、理解があいまいだと苦しむかもしれない。
0491デフォルトの名無しさん
NGNGEOFであるか?と聞く関数なので
データがあればNo, データが無ければYesを返しているだけです。
0493デフォルトの名無しさん
NGNG(特に、feofは失敗しないはず)
0494デフォルトの名無しさん
NGNG0495488
NGNGYes Noを返してきてるのか
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGint main(){
printf("%p %p %p \n", printf, *printf, &printf);
return 0;
}
この辺の仕様がキモくてしょうがないんだが、
何でこんな仕様になってるんだ?
なんとかならないのか?
0498デフォルトの名無しさん
NGNG頭良すぎ
0499デフォルトの名無しさん
NGNGワロタ。ナイスタイミングでGJ!!
0500デフォルトの名無しさん
NGNGひとまず怪しげな入門書を引っ張り出してきて引いたら
while (fscanf(....) != EOF)
使ってた。
0501デフォルトの名無しさん
NGNG単なるポインタであるFILE*変数自体は
再代入でもしない限り変化しないわけだが。
0502デフォルトの名無しさん
NGNGファイル終端に到達したらEOFになるんじゃあ?
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGy(n)=x(n)+x(n+1)
y(n+1)=x(n+1)+x(n+2)以下半永久にfor文で
やらせるプログラムを作ろうとしています
それでx+=x+cを使ってしまうとxがx(n+1)の値になってしまって
x(n)をどうやって指定するのか分からないし…
ということで詰まってしまってプログラムが書けません。
こういう場合はどういうプログラムを作ればいいのでしょうか?
すみませんが教えてください。よろしくお願いします。
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNGだな。
0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512512
NGNG0513デフォルトの名無しさん
NGNGprintf("#\n");
のように、#記号を表示したいのです。
0514513
NGNG0515デフォルトの名無しさん
NGNG関数の引数にするときによくあるパターンだと思います。
ところがchar **型からconst char **型へは暗黙の変換がされない
ようですが、これはなぜなんでしょうか?
0516デフォルトの名無しさん
NGNGchar **p=0;
char * const *cp=p;
0517デフォルトの名無しさん
NGNGint main()
{
(*(int(*)(char*,...))puts)("100 = %d\n", 100);
return 0;
}
100 = 100
と表示されません。
コンパイラがバグっているのでしょうか?
0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNGバグってるのはお前の頭。素直にprintfを使いなさい。
0520デフォルトの名無しさん
NGNG0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNGfeofを使いなされ
0523デフォルトの名無しさん
NGNG#define HOGE(p) test(__FILE__, __LINE__, p,...)
void test(char *file, int line, char *fmt, ...);
void main(void)
{
int p;
HOGE("hoge = %d\n", p);
}
こういう感じでうまくdefineを定義して可変長引数を渡したいのですが、
どうやればいいですか?
0524デフォルトの名無しさん
NGNG説明になってないしchar*const* != const char**
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGいまいちぴったり合ったFAQが探せなかったのですが、
一般的にはできない。ということですね。。
0527デフォルトの名無しさん
NGNGなんというか、HOGEマクロの定義自体が狂ってないか?
0528デフォルトの名無しさん
NGNGすみません。どうやってもエラーが出るので書いているのは正しくないです。
0529デフォルトの名無しさん
NGNGかな
0530デフォルトの名無しさん
NGNG#define HOGE test(__FILE__,__LINE__,
HOGE "hoge = %d\n", p);
0531デフォルトの名無しさん
NGNG>>530 いけますけど、見やすくならないでしょうか?
なんとなく関数2個作ってコールバックでいけそうと気づきました。
0532デフォルトの名無しさん
NGNGC使いにはむいてないよな。
0533デフォルトの名無しさん
NGNG設計手法とかには全然関係ないわけだし。
Tips の探求をしているだけというなら分かるけど。
0534デフォルトの名無しさん
NGNGそうですか、ではどうすると一番良いでしょうか?
>>533
確かにある意味興味本位ですが。
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGC++とかC#でも使ったらどうかな。
Cファミリでなくてもいいなら
RubyとかPerlとか使いなよ。
0537デフォルトの名無しさん
NGNG関数に大きいデータを渡すときに渡すデータがポインタだけですむ
0538デフォルトの名無しさん
NGNG何と比べての利点を語って欲しい?
0539デフォルトの名無しさん
NGNGポインタの無い言語(?)
0540デフォルトの名無しさん
NGNG無ければこりゃちょっともうどうしようもない
0541534
NGNGVCのコンパイラですが、ソースはC言語なのです。
VCはデバッガとして使用しているだけでC++は使用できないんです。
コンパイラがgccとかでしたら、最新の環境でうまくいくのですが。
0542デフォルトの名無しさん
NGNGそれだけ高速になるってことですか?
0543デフォルトの名無しさん
NGNG小数の場合どうすればよいのでしょう?
どなたか、教えてくださいm(__)m
0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG0546544
NGNG0547デフォルトの名無しさん
NGNG「小数の余剰」の定義を記せ
答え:_________
0548デフォルトの名無しさん
NGNG0549日本語ダメ夫
NGNG余剰が小数の場合です。
例えば10.2mod3=1.2とか
0550デフォルトの名無しさん
NGNGfmod
0551デフォルトの名無しさん
NGNG漏れはif一筋。
0552デフォルトの名無しさん
NGNG関数ポインタは?
0553デフォルトの名無しさん
NGNGそりゃ配列格納して指数で呼ぶのが普通じゃない?
0554デフォルトの名無しさん
NGNGif (++r >= 360) {
…処理…
}
このif文は条件を満たしていればブロック内を処理しますが、
条件を満たしていなければrに1を加算するのでしょうか?
0555デフォルトの名無しさん
NGNG条件を満たしていようといまいとrに1加算し、更に条件を満たしている場合にはブロック内の処理もします。
0556543
NGNGありがとうございます!
その関数の存在を初めて知りました
0557デフォルトの名無しさん
NGNG回答ありがとうございます!
ということは、if文というのは、条件を指定する括弧内の
関係演算子or論理演算子までを実行するということでしょうか?
或いは、括弧内を全部実行した上で条件分岐をするということでしょうか?
0558デフォルトの名無しさん
NGNGちなみに、
++r
と
r++
の違いわかってますか?
0559デフォルトの名無しさん
NGNGはい。理解していますよ。
式の値が、+1を実行した後のrの値か、+1を実行する前の値かの違いという事ですよね?
0560デフォルトの名無しさん
NGNG「ひとまずrに1加算した上で条件判定を行い、条件を満たしていればブロック内を実行する」がより正確なとこです。
>>557
括弧内が真又は偽であることが確定するまで処理を行います。
これは&&や||で条件を書き並べて練習するとよく分かると思います。
0561デフォルトの名無しさん
NGNGありがとうございます。
真偽の程はともかくとして、カッコ内に四則演算があれば
それは実行されるということでよろしいのでしょうか?
0562デフォルトの名無しさん
NGNGqsort
0563558
NGNGなんか微妙に違うかな。
if(++r >= 360)だったら、
r += 1 を実行した後に r >= 360 を評価。
if(r++ >= 360)だったら、
r >= 360 を評価した後に r += 1を実行。
0564デフォルトの名無しさん
NGNGええと、なんだか誤解されそうなのが怖いんだけど。
ひとまず、括弧内に普通の四則演算を書いておけばまず実行されると見て間違いない。
ただし、
int a = 1, b = 2;
if ( a == b && ++a == b) { ; }
というような場合 ↑
ここの++aは実行されない(一番目の評価が偽であり、真偽判定が完了しているため)事に注意。
0565デフォルトの名無しさん
NGNGA && BでAが偽の場合と
A || BでAが真の場合はBは評価されない。
だったよな?>>561じゃないけど何か不安だ
0566!=563,!=564
NGNG0567デフォルトの名無しさん
NGNGそーですよ。
0568デフォルトの名無しさん
NGNG最近じゃ実行速度差なんてつかないだろうから、もっぱら可読性の問題だけど。
0569デフォルトの名無しさん
NGNG0570デフォルトの名無しさん
NGNG常軌を逸しているとしか思えない。
0571デフォルトの名無しさん
NGNGint a=1;
だと
if(a++=1){・・・}は{ }内実行されなくてaは2になって
if(++a=1){・・・}は{ }内実行されてaは2になるってこと?
0572デフォルトの名無しさん
NGNG読めないやつは足手まとい
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGチーム組んだことなんか無いだろw
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG何故、実験しないのかかなり問い詰めたい
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGまたおまえか!
独りではチームと呼べないことに早く気づけよ!!
0579デフォルトの名無しさん
NGNG統合失調気味?
0580デフォルトの名無しさん
NGNG逆だ...
0581577
NGNG0582554
NGNG上記の皆さんの様々なやり取りwを読んで、勉強になりました。
ただの言い合いのように見えても実は内容があったような気がしました。
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG使用方法によっては前置か後置かで速度が大幅に変わるプロセッサも存在する。
今ではコンパイラが速いほうに修正すると思うが。
0585デフォルトの名無しさん
NGNGwhile( *p != '\0' ) {
p = p + 1;
l = l + 1;
}
while(*p++ != '\0') l++;
下の方が読みやすいと思う人が多いんじゃないかな。
0586デフォルトの名無しさん
NGNGhehe
まー、個人的にはこういう場面では後置より前置のほうが処理の流れが分かりやすいので好き。
余計に煩雑化するから結局後置にするけど。
0587デフォルトの名無しさん
NGNG配列に10万個のデータを入れたいのですが、
for文で挿入するとスタックオーバーフローになってしまいます。
解決方法を教えてください。
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNG間違えてるじゃん。
可読性は大事だよ。素直に書こう。
0590デフォルトの名無しさん
NGNGmemset じゃだめ?
0591デフォルトの名無しさん
NGNGもしかしてこんなん書いてる?としたらそれが原因だよ。>>587
0592デフォルトの名無しさん
NGNG配列と元データはどうやって用意してるのか。
静的に確保しようとすると失敗する可能性高い。
0593デフォルトの名無しさん
NGNGランダムな数値なんです。
memsetっていうのがあるんですか。
調べてみます。ありがとうございます。
0594587
NGNGテキストに10万個のランダムなデータが入っていて、
それをfscanf関数を使って配列に格納したいのです。
このまま591さんが言ったようにjuuman[100000]にしようと思ったのですがだめでした。
memset以外の解決方法はありますか?
0595デフォルトの名無しさん
NGNGmallocで動的に配列を確保する。
0597デフォルトの名無しさん
NGNGローカルに確保してるだけなんじゃないの? だからスタック不足。
グローバルで確保すればOKでしょ。
type juuman[100000];
0598デフォルトの名無しさん
NGNGあらら、分かってないのね。
0599デフォルトの名無しさん
NGNG代入と比較を間違えるなヴォケエエエエエエエエエエエエエエエエエエエエエエエエエエ!!!@#@!@!!!
0600デフォルトの名無しさん
NGNG忘れた頃にまたおいで
恥かしいから
0601デフォルトの名無しさん
NGNGそういえば、そうだな。
0602デフォルトの名無しさん
NGNG0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG勉強になりますた
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG0609デフォルトの名無しさん
NGNGFILE *fp;
略
whie(!feof(fp))
{
fscanf(fp, "%d", &v[num]);
num++
}
で、ファイルから整数を取りv[ ]に入力してnumでデータ数を数えたいのですが
numが何故かデータ数よりも1多くなってしまいます。何故そうなるかの理由を教えて候。
例えばファイルに
10
20
と入ってるとnumが3になってしまいます
0610デフォルト
NGNGC言語の本に付属してるコンパイラを使ってC言語の勉強してるんですが、
先週からつまづいてしまいました。
サンプルファイルをコンパイルすると、きちんと「hellow world」と表示されるのですが、
自分でまったく同じプログラムを打っても
「エラーE2206 不正な文字’’
エラーE2206 不正な文字’@’
・
・
・
エラー2141 宣言の構文エラー
24error in compile」
と出るだけなんです。
サンプルファイルをコピーして貼り付けても同じメッセージが出ます。
どういうことかわかる人がいたら助けて!
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNGnumはnum++で0,1,2,3,4・・・と規則的に増えてゆくだけだから。
0613デフォルトの名無しさん
NGNG0614612
NGNG0615デフォルトの名無しさん
NGNG貴様は全角スペースや変な全角文字を24行目付近に使用してはおるまいな?
0616610
NGNGすいませんエラー判定ってなんですか?
本には一言も書いてないのですが、具体的になにをしなければ
いけないんでしょうか。
0617610
NGNGあ、ごめんなさい。自分へのレスかと思いました。
0618612
NGNGエラーじゃなくてEOF判定だな。
while(fscanf(fp, "%d", &v[num])!=EOF)
num++;
こうすればよい。
0619610
NGNG24行も書いていないです。
#include<stdio.h>
main()
{
printf("hellow worle\n");
}
だけなんです
0620611
NGNG0621609
NGNGファイル内容
10
20
を読み込んだ場合
whileで論理チェック(ファイルは終わってないかどうか)
↓
終わってないので10をnum[0]へ。numを0から1にする
↓
whileで論理チェック
↓
okなので20をnum[1]へ。numを1から2に。
↓
whileで論理チェック
↓
ファイル終わってるのでループ終了。
じゃ、ない?
0622デフォルトの名無しさん
NGNG24行目にエラーがあるんじゃなくて、エラーが24個見つかったんでしょ。
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNGあ、ほんとだ。おやすみぃ♪
0625611
NGNGここが間違い(w
0626デフォルトの名無しさん
NGNG寝るのかよw
0627デフォルトの名無しさん
NGNGもう読み込むべきものがないときにfscanfして初めてEOFがセットされる。
0628デフォルトの名無しさん
NGNGやっぱどっかに変な文字が混入してると思うんだけどなぁ・・・。そのコードは普通にコンパイル通って実行もうまくいくし。
0629627
NGNG↓
終わってないので10をnum[0]へ。numを0から1にする
↓
whileで論理チェック
↓
okなので20をnum[1]へ。numを1から2に。
↓
whileで論理チェック
↓
okなのでfscanf。EOFがセットされる。numを2から3に。
↓
while中のfeofで判定。
↓
ループ終了。
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG大抵は入力関数の戻り値を調べることで済む。
0632610
NGNG変な文字は何度も確認しました。
驚くべきことに、他のサンプルファイルでもこうなることがあるんです。
0634デフォルトの名無しさん
NGNGでは、コンパイラは何を使ってますか
0635デフォルトの名無しさん
NGNGつまり、fscanfの返り値==0の場合も処理を考えたほうがいいね
0636610
NGNG本付録のBorland C++ Compiler5.5です
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNG例えばfscanf()は書式分の変換できなかった場合は変換できた個数を返す
読もうとして変換したかった個数より少なかった場合、
・最初の変換の前にファイルの終端文字 (end-of-file) があって、入力の失敗が生じた
この場合はfscanf()の戻り値でEOFかどうかわかるが
・エラーやファイルの終端文字の出現が変換が始まった後で生じた
この場合はfeof()でEOFかどうか調べる
0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGワープロを使っているとか。
0641デフォルトの名無しさん
NGNGつーか正直なところMSDN Library以上に引きやすく、読みやすく、よくまとまっており、関連事項への参照があり、セキュリティ警告も出してきてくれる
ドキュメントツール(?)は無いと思うわけで。
そんな私はMinGW使いなのですよ。
0642610
NGNG0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG0645デフォルトの名無しさん
NGNGやっぱりハイパーか。
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG0648610
NGNG今ワード使ったら、赤線ひかれまくりで、
エラーも出るし、なんかだめでした。
0649610
NGNG拡張子は.cです。
それをコンパイルすると.exeという実行ファイルができるんですが、
そこまでで終わってしまうんです
0650610
NGNG0651デフォルトの名無しさん
NGNG・コンパイラを変える
・OSを変える
・人生を変える
・無に帰る
0652デフォルトの名無しさん
NGNGxxx.cpp ファイルの 18 行目に全角スペース (日本語のスペース) があるので半角スペースに修正する。
同様の間違いに、二重引用符が半角「"」ではなく全角「”」になっている、一重引用符が半角「'」ではなく全角「’」になっている、などがある。
注意すること。
0653デフォルトの名無しさん
NGNG「エディタを変える」は賛成だな。
0654610
NGNG0655デフォルトの名無しさん
NGNG0656610
NGNG0657デフォルトの名無しさん
NGNG<- 今ここ ->
・コンパイラを変える
・OSを変える
・人生を変える
・無に帰る
0658610
NGNGサンプルファイルしか読み込まないなんて。いや、サンプルファイルすら
読み込まないBorlandC++Compiler
0659デフォルトの名無しさん
NGNGまぁBCC Developerとかのほうが使いやすいんじゃないかな?
0660デフォルトの名無しさん
NGNGBCCのせいにするなYO! BCCはそこまで酷くはないYO!
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNGVC++はなんか新規プロジェクトの時出来る意味不明なファイル多いし
0665デフォルトの名無しさん
NGNGそのエラーになるソースを↓にアップしてみたら?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1076074304 (添付ファイルとしてアップロードできる)
0666デフォルトの名無しさん
NGNG0667デフォルトの名無しさん
NGNG0668610
NGNGいや、OSは98なので問題ないかと
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGそれこそ問題のような。コンパイルするとバイナリの中に隣のメモリ空間がコピーされることがあったりとまぁウハウハな環境だよ。
2000かペケポンをお勧めする。
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGハードウエアが(w
0673デフォルトの名無しさん
NGNGvim on linux using GNU gcc は少数派なのか・・・
>>651
下から二番目でお願いします・・・
0674デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG俺もvim好きだよー、マウスある環境だとやはり別コンセプトのエディタがいいからVxEditor使ってるけど
俺もLinux好きだよー、マシン一台空けるのめんどいからcoLinux使ってるけど
俺もgcc好きだよー、(こればっかりは完全に同じなのでネタ続かず)
0677610
NGNG保守派の僕にはつらい
0678デフォルトの名無しさん
NGNG自分は95でBCCとK2Editor使ってましたよ
0679665
NGNG0680デフォルトの名無しさん
NGNGドンマイ!
0681610
NGNGすいません無視したわけじゃないんですが・・
ソース自体には問題はないはずなんです。
ちゃんと起動するサンプルのソースをそのままメモ帳にコピーしても
動かないので、問題は違う場所にあるんだと思います。
わざわざリンクありがとうございます
0682デフォルトの名無しさん
NGNG0683デフォルトの名無しさん
NGNGhellow world ぐらい自分でソース打てよ
コピペだと改行コードとかいろいろ問題ある。
0684デフォルトの名無しさん
NGNGそれだったらコンパイルとおったソースと
バイナリで比較してみろ
0685デフォルトの名無しさん
NGNG改行コードをコピペ元に忠実にファイル内部でコロコロ変えてくれるエディタというのには出会ったことが無いので是非紹介して頂きたい。
0686610
NGNGたしかに。再インスコしてみます。
>>683
バイナリってどうやってみるんですか?もしかしてメモ帳でexe開いたときに
画面いっぱい文字化けが出てくるやつですか
あと質問ばかりで恐縮なんですが、ワードパットでソース書くときって
ファイルの種類はword6ドキュメント、字体は欧文でいいですか?
0687デフォルトの名無しさん
NGNGそうですね!
0689デフォルトの名無しさん
NGNGどういう雰囲気だったんだ?
0690デフォルトの名無しさん
NGNGなわけないか。でも全然目に入らなかった。
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGファイルから実数型のデータを入力し、分散を求め、ファイルに出力するプログラムを作成せよ。
提出期限は、次週の授業開始時までとする。
ただし、プログラム仕様は下記のとおり。
(1) 入力するデータの数は100個とする。
(2) 分散を求めるために、ファイルを2回読み込む方式を取れ。 (本当は配列で取っておき、計算する方が効率が良いが、 前章のファイル入出力の復習の意味を含め、2回読み込
む方式を採用することにする)
(3) ファイルへの出力フォーマットは、下記のとおり。
平均 = 平均の計算結果
分散 = 分散の計算結果
ただし、最大値、最小値が複数存在する場合には、データ中での先頭からの番号は、 若い方にせよ。
(4) 入力ファイル名は、input.dat、出力ファイル名は、output.dat。
お願いします。
0693デフォルトの名無しさん
NGNG解読してもらいませんか?
さっぱり、何が書いてあるのかわからなくて、困っています。
ソース↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=101
どなたか、お願いします。
0694デフォルトの名無しさん
NGNGスレ違い
0695デフォルトの名無しさん
NGNGスレ違い
0696610
NGNG教科書には、例えばhellow.cというソースを実行するまでの過程は
「まず
�@bcc32 hellow.c
と打ち込んで、コンパイルがうまくいったら
実行可能ファイルhellow.exeが作られる。
�Aそれでは今できたばかりの実行可能ファイルhellow.exeを打ち込んでみましょう。
Hello World
と表示されましたか?」
とあるんですが、僕ができたのは�@までで、�Aでは不正な文字があるというエラーが
24個出てわけがわからないんです。
0697デフォルトの名無しさん
NGNGint main()
{
return fprintf(stderr,"エラー: 不正な文字がある\n");
}
0698デフォルトの名無しさん
NGNG「打ち込んだ」というのは具体的にどうやったのか。
0699デフォルトの名無しさん
NGNGソースを作成して(例: hellow.c)
コンパイルする(例: bcc hellow.c)と、実行ファイル(例: hellow.exe)が出来る。
のは理解できてるよね。
あとは、実行ファイルを実行すればいい。
070034
NGNG0701デフォルトの名無しさん
NGNG0702610
NGNGコンパイルしたときと同じように
bcc32 rei1_2.exe
と打ち込んでいたのですが、今言われてみて改めて本を確認すると
rei1_2
とだけ打ち込めばいいそうで、やってみたところ
hellow world
できたあああああああああああ!!!!!!!
氏のう。。プロ板の皆さん、こんな僕に90レスも付き合ってくださって
ありがとうございした。今度おごります!!
0703610
NGNG0704デフォルトの名無しさん
NGNGそんなわけない。テキストファイルだ。その程度の違いも分からない奴はワードパットやめろ。
今まで何をしたらどうだったか、全部忘れてしてしまえ。
>>610 から一貫して、言ってることがおかしい。
>サンプルファイルをコンパイルすると、きちんと「hellow world」と表示される
コンパイル直後で出るわけ無い
>サンプルファイルをコピーして貼り付けても同じメッセージが出ます
コピー直後は出ない
>それをコンパイルすると.exeという実行ファイルができるんですが、
>そこまでで終わってしまうんです
>あ、終わってしまうというのは、実行ファイルをコンパイルするとエラーが出ると言うことです
実行ファイルが出来たのなら問題ない。実行ファイルはコンパイルできない。
>考えたくないけど確かにコンパイラが怪しい。
馬鹿言え
>�Aそれでは今できたばかりの実行可能ファイルhellow.exeを打ち込んでみましょう。
>�Aでは不正な文字があるというエラーが24個出てわけがわからないんです。
ありえない。
コンパイル、実行のそれぞれの意味が分かってないように見える。
わかってない奴は、やったことの順序を正確に、一切はしょらずに報告しなきゃだめだ。
ファイルの場所やコマンドラインに打ち込んだ内容のコピペ、問題が起こる一番短いソースのコピペなどなど。
それを中途半端にして、言ってることが既におかしいから、誰も本当の間違い・勘違いを指摘できない。
0705デフォルトの名無しさん
NGNG>コンパイルしたときと同じように
>bcc32 rei1_2.exe
繰り返すが、これは最初のレスで書くべきことだぞ。途中から予想はついてたけどな。
何をやったか正確にわからなきゃ、何が起こってるか、こちとらわかんないんだから。
0706610
NGNGたしかに。。コンパイル、実行の意味がわかってないのに
恐るべき自分の思い込みでした。
目が痛いので眼科に行って、医者に「最近眼圧が高くて・・」と訴えたところ
医者「なんで眼圧が高いってわかるの?」
自分「あ、そういえばなんでだろ」と
逆に聞かれた時とまったく一緒ですね。
早くC言語極めて質問スレで役に立ってみせます
0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG最期にこれだけはツッコましてくれぃ!
何 だ hellow world て w
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNG出来たのに氏ぬのかよw
0712デフォルトの名無しさん
NGNGコンパイルたら、実行たら、なにをどうしているのか
意味をちゃんと理解しろ。
それでようやくなんとかスタートラインに立てる。
0713デフォルトの名無しさん
NGNG>Hello World
>と表示されましたか?」
>hellow world
>できたあああああああああああ!!!!!!!
大丈夫ですか?
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGあるプロセスからperlのスクリプトを起動しようとして、fork(), execle()
したんですが、スクリプトの行頭でperlに与えるスイッチとして-Twがないと、
何故かexecle()に失敗します。まぁ、それは置いといて、このときexecle()を
呼び出したプロセスがdefunctになります。
親プロセスはwaitpid()で子プロセスが死ぬのを待っているのですが捕らえきれて
ないようです。
こんな場合、waitpid()よりもwait()を使ったほうがいいのでしょうか。
ただ、単純なwait()だと、他のプロセスをfork()、execle()していると間違って
シグナルを貰ってしまいそう?なので不味い気がします。
0716デフォルトの名無しさん
NGNGスレ違い
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNG藻前こそ>>1嫁
>GUIなどの標準Cではできない事の質問は使用している開発環境のスレへGo! (←ここ注目)
0719デフォルトの名無しさん
NGNG0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGexecle()に失敗したら、exit()してるか?
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGif (pid == 0){
if (execle(....) < 0){
exit(-2); // 戻り値に特に意味無し
}
}
if (pid > 0){
waitpid(pid, ... );
}
こうか?
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNGで?
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1021364372/
らへんにあるんじゃないかな。中身みてないけど。
0731デフォルトの名無しさん
NGNG0732デフォルトの名無しさん
NGNGケースバイケースじゃないかな。
0733デフォルトの名無しさん
NGNG0734デフォルトの名無しさん
NGNGちなみに、こういうレスをスレ違いとのたまう奴は居ないわけだが。死んでいいよ。
0735デフォルトの名無しさん
NGNGスレ違いです。あなたが。
0736デフォルトの名無しさん
NGNGスレ違いのテンプレート
・よく読みもしないで脊髄反射レス
・単に「スレ違い」と言いたいだけ。
・冗談をスレ違いだ、とは指摘しないダブスタ野郎
↓
0737デフォルトの名無しさん
NGNGこれは付け忘れですか?
0738デフォルトの名無しさん
NGNGディレクトリの概念を持たない環境の為
0739デフォルトの名無しさん
NGNGディレクトリの概念はなかった。
特殊ファイルである CON や NUL が、ディレクトリに関係なく使用できるのは
その当時の名残であると伝えられている。
0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNGそれはライブラリ側で対応できる(とANSIはみた)からだろう。
0742デフォルトの名無しさん
NGNGそれはいいわけじゃないのですか?
ファイルの概念を持たない環境も、
標準入出力の概念を持たない環境もあるでしょう?
>>741
それを言うのならすべてライブラリ側で対応できますよ。
0743デフォルトの名無しさん
NGNGノイマン型でない環境もあるかもしれないよな。
ワイヤードロジックを使う環境とか。
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG言い訳って何よ?バカじゃない?
単純に、仕様としてディレクトリという概念が必要な関数が策定とされなかっただけじゃん。
0746デフォルトの名無しさん
NGNG作成するのができないだけで。
0747デフォルトの名無しさん
NGNG0748515
NGNGchar *型からconst char *型への暗黙変換はあって
char **型からconst char **型への暗黙変換はないという
仕様なんでしょうか??
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNGchar **p=0;
char * const *cp=p;
0751デフォルトの名無しさん
NGNGディレクトリは作れるだろ。
system("mkdir hoge");
とか、他にもやり方はあるし。
0752デフォルトの名無しさん
NGNG相手にすんなって
人を小馬鹿にすることでしか自我を確認できない寒ーい中年が
PG系の大手掲示板によくいるんだよ
ネットであろうがリアルであろうが
そんなことばっかりしてる奴にロクなのいないよ
黙って冷ややかに憶えといてやろうぜ
0753デフォルトの名無しさん
NGNG> PG系の大手掲示板によくいるんだよ
特にでるふぁいしか知らないような逝き遅れがね
0754デフォルトの名無しさん
NGNG流石。自分の事はよくわかってらっしゃる。
0755515
NGNGそれってつまり・・・
char ** → const char **
は無理で
char ** → char * const *
は暗黙変換ありってことを言いたいのでしょうか?
ただ、char * const * p;
とした場合、定数なのは *pですよね?つまりポインタが定数。
ポインタのポインタと実体は変更可能ということですよね。
const char **だと実体が定数なんで、char * → const char *
みたいにchar **の場合も実体を定数にする暗黙変換がやりたかった
んですが・・・素直にキャストしるってことですかね。このへんの
仕様がどうもわからん。
0756デフォルトの名無しさん
NGNGa=(char**)calloc(10,sizeof(char*));
a[0]=(char*)calloc(10,sizeof(char));
a=(char**)realloc(a,20*sizeof(char*));
a[19]=(char*)calloc(10,sizeof(char));
strcpy(a[19],"abcde");
printf("%s\n",a[19]);
free(a);
どこかの掲示板で2次元配列はreallocでは確保できないというのを見たのですが、上記のプログラムは正常に動きました
問題点はありますか?
0757デフォルトの名無しさん
NGNGa[0]とa[19]がfreeされていない
0758デフォルトの名無しさん
NGNGreallocが使えるのは最上位の配列要素の数の変更のみで,
他の配列要素は変更できません。
0759デフォルトの名無しさん
NGNGchar **p=0;
const char * const *pp=p;
0760デフォルトの名無しさん
NGNGということは、2次元配列のサイズを変更するということはでき二のですか?
0761デフォルトの名無しさん
NGNG#define PI 3.14f
ってのが出てきたのだけどこのfってどういう役目をしてるのですか?
例えば
#define PI 3.14と書くのとはどう違うのでしょうか。桁数?
0762デフォルトの名無しさん
NGNGコンパイルするとき、なんていうコマンド入れてる?
0763デフォルトの名無しさん
NGNG「f」は?
0764デフォルトの名無しさん
NGNGfeelのf
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG検索ワードにサフィックスを咥えてもう一度ぐぐってこい。
0767デフォルトの名無しさん
NGNG0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGあなたの野太いちんぽを咥えさせて頂けませんか?
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNGf入ってねえじゃんっw
0773デフォルトの名無しさん
NGNG0774761
NGNGつまり数字の後ろにfってつけると「それはfloat型だぞ」という宣言みたいな感じの認識でよろしくて?
#define PI (float)3.14と同じ意味?
だとしたら何もない時は何になるの?intかな。
つうか根本から間違ってそうな気もしてきた・・・
0775デフォルトの名無しさん
NGNG少数の場合、dとして扱うかfとして扱うかは結構違うので
0776デフォルトの名無しさん
NGNGint hoge(long, long);
な関数にhoge(20L, 15L);
というふうにやるのは結構無意味だと思うんですけど、どんなもんなんでしょうか?
0777デフォルトの名無しさん
NGNG3.14f 3.14F float型
3.14l 3.14L long double型
小数点文字がついた時点でintではなくなる
0779デフォルトの名無しさん
NGNG少なくとも、無意味ではないですが、だからといって特別な効果があるわけでもないです。
0780デフォルトの名無しさん
NGNGintの範囲に収まる値なら確かに無意味そうだ。
0781デフォルトの名無しさん
NGNGintが32bit値と仮定してですけど、hoge(4100000000, 4100000000);などとしてもコンパイラが勝手にlongとして
解釈してくれると思うんですがどうなんでしょう。
0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNG1 << n と 1L << n では、nの値によっては、結果が変わってしまう処理系がある。
0784デフォルトの名無しさん
NGNGfushianasan の f
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG0787515
NGNGあ、つまりポインタを定数にすることで、暗黙変換ができるようになり、
実体も定数にしたければ頭にconst付ければいいということですか。
なんかわかりづらいですね。それとも理にかなってるのかな?
char ** → const char ** この暗黙変換を禁止した理由ってなんだろ。
0788デフォルトの名無しさん
NGNGいや、それは違うんじゃないか。
Lがついていない以上、ただのintだろう。
0789デフォルトの名無しさん
NGNGそれ「エキスパートCプログラミング」に載ってた。
規格書読めば分かることらしい。
0790デフォルトの名無しさん
NGNG0791デフォルトの名無しさん
NGNG例:32030
a[0]=3,a[1]=2,a[2]=0,a[3]=3,a[4]=0のように代入したいんです
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGgetchar() - 48
0794デフォルトの名無しさん
NGNGgetcharでいいのでは?
aはchar型なわけでしょ?
scanfで文字列としてとってstrlenやってからまわした方がやりやすいかも。
0795デフォルトの名無しさん
NGNGNULL分を確保するのを忘れるな!
0796デフォルトの名無しさん
NGNGtypedef char* charp;
charp *p=0;
const charp *pp=p;
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNGisdigit() で数字判定も入れるべし
0799デフォルトの名無しさん
NGNGchar const c[]="do not write";
void f(char const** p){*p=c;}
void g(char** p)
{
f(p);
(*p)[0]='\0';
}
0800515
NGNGおお・・そんなやり方が。
無理やりにでもやりたいなら、そういう方法ということですか。
表記上*が1つの宣言なら、いけるんですね。
2つなら1段階デリファレンスしたものをconst指定して・・・
ってもうこのへんでやめときます。
言語作った人がどういう考えでこのように実装したのか
ちょっと気になったんですが。
エキスパートCにのってるそうなので立ち読みしてきます。
どうもでした。
0801デフォルトの名無しさん
NGNGtypedef char* charp;
const charp *pp;;
この時ppの型はchar * const *だ
0802515
NGNGあ、定数性が失われる・・・ということですか
ああそうか〜そうだそうだ〜
char **→const char **やっちゃうと
const char *が代入できちゃって
元のchar **の方でデリファレンスしちゃうと
charが書きかえれるわけでconst char *の
実体が変わっちゃうってこと?(意味不明)
0804515
NGNGどっちの形式を使うかで話題になっていて、自分はconst charの
方がメジャーだろうとこっちを使っているのですが、constの理解
のしやすさでいえばchar constもいいかもしれませんね。
char const **
char * const *
char ** const
typedef char* charp;
charp const *pp;
0805デフォルトの名無しさん
NGNGこんなスレはもう見たか?→http://pc5.2ch.net/test/read.cgi/tech/1078193971/
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNGああ。できるさ。
0808デフォルトの名無しさん
NGNG課題が出たんですけどどんなのやればいいですかね?
ちなみにバネ2本つないで振動させるっていうのは駄目らしいです。
0809デフォルトの名無しさん
NGNG宿題スレで聞くといい。
0810デフォルトの名無しさん
NGNGconst char*
と
char* const
では、意味が違う。前者はポインタの差しているcharがconstant.
後者はポインタがconstant.
0811デフォルトの名無しさん
NGNGコマの運動方程式を立てたシミュレーション。
0812808
NGNG宿題スレってどこすか?
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG15KB/sってあんた・・・
0815デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGconst char*
と
char const*
では意味が同じ、だが下の方が良い書き方ではないのか?ということを>>804は言ってるんだろ
0817デフォルトの名無しさん
NGNGなんかガイドとかないでしょうか?
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG標準になくシステムコールにあればシステムコールを使う
0820デフォルトの名無しさん
NGNG意味は違うっつーの
804もconstの理解云々書いてるだろーが
0821デフォルトの名無しさん
NGNGchar const* と const char* でどう意味が違うのか、言ってみな。
0822デフォルトの名無しさん
NGNGchar* const a;
const char* b;
a = "aho"; /* ダメ */
b = "baka";
*a = 0x0;
*b = 0x0; /* ダメ */
0823デフォルトの名無しさん
NGNGconst char* b;
の違いじゃないのか
0824デフォルトの名無しさん
NGNG環境はwin200・Visual Studio6.0です。
お願いします。
0825デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG環境スレへGO!
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831829
NGNG0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG言語はCで。詳細は、[email protected]
1万円でお願いします。しかし、期限は今週の金曜まで!
ええっと、レベルはプログラム経験2年くらいの人なら半日もかからず終わります。
当方、プログラム経験がないため、四苦八苦してるオヤジです。
0834デフォルトの名無しさん
NGNG氏ね
0835デフォルトの名無しさん
NGNG安いよ。あと100倍だったら請負ってあげるけどね
0836デフォルトの名無しさん
NGNG100倍はいらないが1万ごときじゃ足りん
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG当方Cでの開発経験2年程。私くらいなら妥当な値段かも・・
0841デフォルトの名無しさん
NGNG616 :デフォルトの名無しさん :04/06/30 16:11
未経験のオヤジの目算じゃ当てにならないな
5分で終わるかもしれないし3ヶ月の案件かも知れん
0842デフォルトの名無しさん
NGNGここはCスレである前に2ちゃんねるだったんだ。
0843デフォルトの名無しさん
NGNG詳細はここではいえないのですが、概要はこうです。
�@あるテキストファイル(Aとします)を読み込む。
�Aもう一つのテキストファイル(Bとします)を読み込む。
ここで、AとBが完全のデータが完全に一致していたら、
Aファイルに「OK」、一致していなければ「NG」と記述するプログラムをお願いしたいのです。
Aファイル、Bファイルの中身はここではお教えできませんが。
よろしくお願い致します。
0844デフォルトの名無しさん
NGNG安いのか。まさか、CAD作ってくれとか?
0845デフォルトの名無しさん
NGNGAとBのデータが完全に一致していたら(略)
すいませんです。
0846デフォルトの名無しさん
NGNGもう、出来ているではないか。
0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG鳩飛ばしました
0850 ◆4m36BLkkLA
NGNGトリップつけます。
いいえ、違います。
エクセルに貼り付けるやり方も存在するらしいですが、Cでお願いしたいと思います。
0851デフォルトの名無しさん
NGNG0852 ◆4m36BLkkLA
NGNGお願いいたします。
助かります。
0853デフォルトの名無しさん
NGNGここの掲示板で見かける女の子のコメントで「処女を捨てたい!」
って子がいますけど、力になりたい!です。
もし、男性とHしたことないけど、
身近に相談相手がいないって人がいましたら、
メールくださいね(^_^)大学ではサッカーをしてますよ♪
だから見た目も悪くないと思います!
0854デフォルトの名無しさん
NGNGそこまで具体的に出来てるなら出来たも同然やん・・周りの人間に頼めよ
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG0858 ◆4m36BLkkLA
NGNG0859デフォルトの名無しさん
NGNGlinuxであればcmpというツールがあるし、
windowsならcygwin入れれば使えるし、
webで探せばそういったツールはいくらでもありますよ
0860デフォルトの名無しさん
NGNG0861デフォルトの名無しさん
NGNGsystem("diff A B");
/* 事後処理 */
我ながら完璧だ。
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG-------------------- キリトリセン --------------------
0864デフォルトの名無しさん
NGNG比較するだけじゃないらしい
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG>>829
0869デフォルトの名無しさん
NGNGchar const* と char *const が同じだと思って優越感に浸ってる
あるいは
const char* と char const* が同じって事に気づいた
char const* と char *const は違うって事に気づいた
そして逃げた
0870デフォルトの名無しさん
NGNG0871 ◆4m36BLkkLA
NGNGどうですか?できそうですか?
メールお待ちしております。
0872デフォルトの名無しさん
NGNG>804 「const char より char const の方が理解し易いかも。」に対し
>810 が勘違いして「const char* と char* const は違う。」
>816 が「そんな話はしていない」と指摘。
>820 の勘違いは解けず「違うっつーの」
>821 が再度指摘。
>822 が引っ込みつかなくなる。
>823 が更に指摘。
>829 がアサッテの方角へ。
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNG俺も書いたから間違いない。
ちなみにその時は、const指定が型を修飾すると考えたほうがわかりやすいかも、という意見も出ていた。
0875デフォルトの名無しさん
NGNG> (日)あるテキストファイル(Aとします)を読み込む。
> (月)もう一つのテキストファイル(Bとします)を読み込む。
「半日もかからずに終わる」というのはうそですね。
0876デフォルトの名無しさん
NGNG俺理論でマイナーな書き方をされたら迷惑なだけ。
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNGとか。
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGunsigned argc;
char* *argv;
0882デフォルトの名無しさん
NGNG*a++
この処理順番って、同順位なんで、++が右(何もない)から左(a)に結合されるんだから、
こういうこと↓にならない?
1) a++ ※すでにアドレスが進む
2) *a ※進んだアドレスのさすものをあらわす
でもならないんだよね・・・
なんで?意味教えてえらいヒト!
0883デフォルトの名無しさん
NGNG根源的に勘違いしている。
"副作用"でググれ。
0884デフォルトの名無しさん
NGNG副作用?
ただのポストインクリメントじゃん。
0885デフォルトの名無しさん
NGNGaの内容がインクリメントされる。が式の値としてはインクリメントされる前の値が返る。
int *p=a;
a+=1;
*p;
と同じ感じ?
0886デフォルトの名無しさん
NGNGエロイ人より。
0887デフォルトの名無しさん
NGNG右結合ってのは、*(a++) ってことだ。
左結合ってのは (*a)++ ね。
そうして、 (a++) の値は、インクリメントされる前の a の値。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG副作用が起こるタイミングと
演算子の優先順位は全く無関係。
それだけの話。
0890デフォルトの名無しさん
NGNG*++a って、エラーにならないの?
0891デフォルトの名無しさん
NGNG0892ママ
NGNG息子がいろいろとお世話になっております。
さて *++a の件ですが、
アナルパールに見えるので卑猥だと思います。
0893デフォルトの名無しさん
NGNGママは*++a使った時あるの?
0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNGMS-DOS時代はどうやって絵を表示させていたのですか
それともCでは不可でC++ならできることなのですか
0897デフォルトの名無しさん
NGNG環境依存です。
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNGGDCという石をコントロールして書くか
VRAMに直接書く
0901デフォルトの名無しさん
NGNGVGAモード設定して、VRAMにカラーデータを書き込んでたんです。
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNGVRAMっていうメモリ領域に色コード書き込むと点が表示されたり
PCに組み込まれたサブルーンを呼び出して線を引いたりしていた。
0904デフォルトの名無しさん
NGNGもっと低レベル域でのプログラムをしていた
0905882
NGNGです。
でもまだわかんないや
>885
式の値って、(a++)自体が式じゃないの?
だったら式が終わった後、加算したアドレスの値をみるってことじゃないの?
0906デフォルトの名無しさん
NGNGVRAMに書き込んでいたのですね
それは純Cでもできるのでしょうか
なんとなくアセンブラの領域なような気がしますが
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGいじって遊んでた。アセンブラとCを使ったが当時はCは遅くてつかえんかった。
0909デフォルトの名無しさん
NGNG}
て書かなきゃいけなくなるしなぁ。不便だなぁ。
0910デフォルトの名無しさん
NGNGあたりまえやんw
マシン語が分からないからアセンブラ使ってた時代だろ
0911デフォルトの名無しさん
NGNGint main()
{
int i = 0, j = 0;
printf("%d %d", i++, ++j);
printf("%d %d", i, j);
}
0912デフォルトの名無しさん
NGNG肝心なのはアルゴリズムを書くセンスと意地だよ。
0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNG今でもマシン語大変なんでアセンブラ使ってる人
いると思うけど。
0915882=905
NGNGすげぇー!;が式の終わりということで、後加算するということでOK?
0916882=905=915
NGNGprintf("%d %d", j++, j++);
�A �@
だと、 1 0 と表示されるね。
つまり�@の戻り値を返した後から加算はされるんだね。
0917デフォルトの名無しさん
NGNGうまい!
0918デフォルトの名無しさん
NGNGおととし Palm 用の JPEG ロダ作るのに遅まきながら 68 はじめたけど
64K 超えるやつを表示できない めんどくさくてやめたへタレ
中学〜高専で、乏しい知識で 98,DOS/V 両方のMAG ローダなど作ったよ 懐かしい
BASIC + アセンブラで 3D のゲームとか アセンブラだけで上海とか
DOS窓あるマルチウィンドウアプリとか あのころの意地はどこへ
0919デフォルトの名無しさん
NGNG>printf("%d %d", j++, j++);
これの結果がどうなるかはコンパイラによって変わるぞ
0920デフォルトの名無しさん
NGNGインクリメント文が一つの文で複数回評価される場合の動作は、未定義だったか不定だったか忘れたが、
そういうこった。
0921デフォルトの名無しさん
NGNGhttp://www.kouno.jp/home/c_faq/c3.html#0
ここ嫁
0922デフォルトの名無しさん
NGNGうちは gcc で 1 0と出た
>>918
(ノд`)
0923デフォルトの名無しさん
NGNGそれでも昨日と同じ話をループするのはちょっと・・・って思った
0924デフォルトの名無しさん
NGNGif(str=="end")
printf("%s\n", str);
としてもprintfが実行されません。何故ですか?
お暇な人もしいたら判りやすく教えてくだされ
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNGある参考書を見てるとこうゆうプログラムがありました
int c;
c = getchar()
while (c !='.')
{
printf("%c",c);
c = getchar();
}
getcharは文字を得る関数ですよね? 何故cはchar型じゃないのでしょう?
0927デフォルトの名無しさん
NGNG#include <string.h>
if(!strcmp(str, "end"))
printf("%s\n", str);
0928デフォルトの名無しさん
NGNGありがとー。よく判った。
0929デフォルトの名無しさん
NGNGFAQすぎてネタとしか思えない。
0930デフォルトの名無しさん
NGNGなんで、toupperを使わないんだ?
0931デフォルトの名無しさん
NGNG書いた人に聞けよ。
0932デフォルトの名無しさん
NGNG移植性を考慮する必要がなくて関数呼び出しを避けるためとか思いつくけど、
作った人間の勝手だと思われ。
0933926
NGNG0934デフォルトの名無しさん
NGNGオレも初心者だから間違ってるかもしれんが、
EOF(-1)返すためにintなんじゃないかな
0935デフォルトの名無しさん
NGNGhttp://www.kouno.jp/home/c_faq/c12.html
ここの12.1
0937デフォルトの名無しさん
NGNG数字かどうかの判定にもif(c>='0'&&c<='9')とかやっていそう。
0938デフォルトの名無しさん
NGNGうん、やってるよ。
読むのがシンドイ。
コメントないし。
0939926
NGNGintなのに%cで出力するのを見たのは初めてなので戸惑ってしまいました。
0940デフォルトの名無しさん
NGNG普通はどうするの?
0941デフォルトの名無しさん
NGNGちなみに文字定数('a'とか)はint型だ。
0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNGisdigitじゃないの?
俺は'0'〜'9'で比較してるけど
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGCでシングルクォートの中に2バイトも書けるんでしょうか?
それともそのコンパイラーの独自拡張なんでしょうか?
VCとかにもってっても使えるでしょうか?
Cの標準規格ではシングルクォートの中に何バイトまで書けるんでしょう? 教えてください。
0946デフォルトの名無しさん
NGNG日本語のコード変換とか正規表現とかって
どうやってます?
Perlでいうとこのjcode.plがCにもあるの?
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNGマンドクセーから
0950デフォルトの名無しさん
NGNGそのコンパイラーはintは64bitだったんですが、そこまでは試してみませんでした。
標準規格ではどうなってるのでしょう?
0951デフォルトの名無しさん
NGNG2chでそんなまじめな質問して、わかるやつがいると思うほうがバカ。
ガキどもが知ったかぶりしてるだけなんだから、答えてもらうのは無理。
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNGchar型では256通りしか返し分けられないから。
文字コードの256種類とEOFの合計「257」通りを返しわけるのはcharでは足りないので
intで設計されているわけ。
0958デフォルトの名無しさん
NGNGコード変換ルーチンを必要とするプログラマが、
全員自ら自作して、しかも誰一人として公開してないとでも思っているの?
ま、たいしたもんでもないけどね・・・
0959デフォルトの名無しさん
NGNG君の数十倍は稼いでそうなプログラマも居るんだけどね。
人格がアレだけど(そういえばlinux板のスレどこ行ったやら)
0960デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1088610149/
0961デフォルトの名無しさん
NGNG0962デフォルトの名無しさん
NGNGはきだめで見てようやく気付いた
0963デフォルトの名無しさん
NGNG例えばBorland Cコンパイラの場合、
int i ='aaaa';
printf("%d\n",i);
このような文字定数を指定すると
iには1633771873が格納される。(int i = 0x61616161 と解釈する)
int i ='aaaaa';
だとコンパイルエラーとなる。
当然、他のコンパイラがこのように動作する保障は無い
0964デフォルトの名無しさん
NGNGえ? 処理系依存ってことは、「まちがい」ではないのね?
エラーにしてもいいって程度?
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGそこじゃなく最後の行を読め
0967デフォルトの名無しさん
NGNG↑のような関数を作ったのですが、
呼び出し側で
InputKey(PlayerInitPointOn,NULL,3, &Y1,&Y2,&AT);
というように呼び出したのですが、
エラーが出てしまいます。
---------------------------------
第1引数の関数は
Boolean PlayerInitPointOn(unsigned char theKey, int *argv[])
です。
第2引数はNULLでこの呼び出しでは処理させないようにしてます。
第3は可変個引数の数で、第4以降は可変個引数です。
----------------------------------
PlayerInitPointOnに引数を与えないと使えないということなんでしょうか? 関数ポインタを与えたいのですが。
InputKey関数の処理で
if((*keyEventProc)(aKey, argv)==true) return 1;
という風に呼び出そうとしてます。
(aKeyはunsigned char型で,argvはint **型です。)
------------------------------
エラー内容は
unsigned char(unsigned char, int**) から
unsigned char (*)(unsigned char , int *)への不当な暗黙の変換です。
と出ました。
単に関数ポインタを使って、呼び出したいだけなのですが。多分、何か自分は勘違いしてるんだと思うのですが、それが何か。。。長文すみません。
0968デフォルトの名無しさん
NGNGと
int *argv[]
0969967
NGNGに直しましたが、今だ動きませんです。。。
呼び出し文に問題有りそうな気がするのですが。
0970デフォルトの名無しさん
NGNG0971967
NGNGソースを貼ってくれって意味ですか?
そうだとしたら、どこか貼れる場所知ってたら教えてくれませんか。
すみませんが。
0972デフォルトの名無しさん
NGNGJIS X 3010:2003
ISO/IEC 9899:1999
タダじゃありませんよ。
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNGc = toupper(c) は c = islower(c) ? c + ('A' - 'a') : c の動作だから
c が必ず英小文字であることが解ってる場合には
c += ('A' - 'a') の方が無駄がないんだよ。
0975デフォルトの名無しさん
NGNGこのプログラムが問題なく通るので、書き込み以外の部分にエラーがある。
ソースの無関係と思われる部分をコメントアウトしながらコンパイルしていき、
エラー発生個所を特定するのが良いと思う。
#define NULL 0
typedef int Boolean;
Boolean PlayerInitPointOn(unsigned char theKey, int *argv[]) { return 0; }
int InputKey(Boolean (*keyEventProc)(unsigned char key,int *argv[]),
void (*nullEventProc)(int *argv), int argc, ...) { return 0; }
main(){
int Y1,Y2,AT;
InputKey(PlayerInitPointOn,NULL,3, &Y1,&Y2,&AT);
return 0;
}
// >>970 は貴方へのレスではないと思われ
0976デフォルトの名無しさん
NGNGwhile(1<0) とかやるのは変態でしょうか?
普通はどうするのでしょうか。
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNGようするにエラーにしなくてもいいのね?
0982デフォルトの名無しさん
NGNGいいえ
for (;;)
です
0983デフォルトの名無しさん
NGNG>int InputKey(Boolean (*keyEventProc)(unsigned char key,int *argv), void (*nullEventProc)(int *argv),int argc, ...)
を
typedef Boolean (*keyEventProc_t)(unsigned char key,int *argv[]);
typedef void (*nullEventProc_t)(int *argv);
int InputKey(keyEventProc keyEventProc, nullEventProc nullEventProc,int argc, ...)
にしてやってみれ。
0984デフォルトの名無しさん
NGNG×int InputKey(keyEventProc keyEventProc, nullEventProc nullEventProc,int argc, ...);
○int InputKey(keyEventProc keyEventProc, nullEventProc_t nullEventProc,int argc, ...);
スマソ
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNG0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。