C言語なら俺に聞け(入門編)Part 102
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2012/05/30(水) 17:16:22.14★前スレ
C言語なら俺に聞け(入門編)Part 101
http://toro.2ch.net/test/read.cgi/tech/1336071926/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 157代目
http://toro.2ch.net/test/read.cgi/tech/1335517816/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
長くなりそうなコードはcodepadに貼り付けてもいいでしょう
http://codepad.org/
http://ideone.com/
0002デフォルトの名無しさん
2012/05/30(水) 19:58:44.20〜
if (i==END-1)〜;
if (i==0)〜;
〜}
関数を使わずif 文消す方法ってどんなのある?
0003デフォルトの名無しさん
2012/05/30(水) 20:10:17.580004デフォルトの名無しさん
2012/05/30(水) 20:13:16.21〜
〜
for (i=1;i<END-1;++i){
〜
〜
}
〜
〜
〜
0005デフォルトの名無しさん
2012/05/30(水) 20:14:41.650006デフォルトの名無しさん
2012/05/30(水) 20:46:56.42〜
switch(i){
case (i==END-1):〜;break;
case (i==0):〜;break;
default: }
〜}
0007デフォルトの名無しさん
2012/05/30(水) 20:48:09.59C言語でおk
0009デフォルトの名無しさん
2012/05/30(水) 20:57:38.95そのくらいわかれよ7君はゴミでカスでADHDでOCDでSADか?
0010デフォルトの名無しさん
2012/05/30(水) 20:58:02.06自分なら>>4のようにすると思うが、ケースバイケースだぬ
0011デフォルトの名無しさん
2012/05/30(水) 21:36:00.68ミスを指摘されて逆ギレとかw
0012デフォルトの名無しさん
2012/05/30(水) 21:41:55.37Qwww ってなんですか?
0014デフォルトの名無しさん
2012/05/30(水) 22:09:49.43え?
0015デフォルトの名無しさん
2012/05/30(水) 23:35:44.70http://iup.2ch-library.com/i/i0649541-1338386525.jpg
0016デフォルトの名無しさん
2012/05/30(水) 23:40:06.00unsigned char a = 255; // 0xff
unsigned char b = 255; // 0xff
unsigned int c;
ここで、
c = (unsigned int) (a + b);
の演算を行った場合、変数cに入る値はどちらが正しい?
GAIO カバレッジマスター 組込み単体テストツール C0/C1/MCDC カバレッジ テストデータ自動生成 | 機能安全 26262
http://www.gaio.co.jp/product/dev_tools/pdt07_winams_qz.html?DM371285263
こういう記事をみつけたのですが、これホントですか・・・?
0017デフォルトの名無しさん
2012/05/30(水) 23:45:12.06>これは両方のケースがあり、正解は決まっていません。
本当でしょうかね?
0019デフォルトの名無しさん
2012/05/31(木) 05:03:30.52ttp://codepad.org/3gM2j1Hw
254かと思ったらそうでもなかった
0021デフォルトの名無しさん
2012/05/31(木) 07:21:10.230022デフォルトの名無しさん
2012/05/31(木) 07:26:20.230023デフォルトの名無しさん
2012/05/31(木) 12:54:19.26http://fuse.git.sourceforge.net/git/gitweb.cgi?p=fuse/fuse;a=blob;f=example/hello.c;h=bcb6b4c53a2da79ad62e9e568fa4ac5f758c5f15;hb=HEAD
71行目は何を意図しているのですか?
0024デフォルトの名無しさん
2012/05/31(木) 13:05:11.35チョン出てくるかな。
0025デフォルトの名無しさん
2012/05/31(木) 13:27:10.39if(END!=0)for(i=0;;++i){
〜A〜;
if(i!=0&&i<END-1);else
if(i==0) 〜B〜; else
if(i==END-1){ 〜C〜; 〜D〜; break;}
〜D〜}
0027デフォルトの名無しさん
2012/05/31(木) 14:23:27.420028デフォルトの名無しさん
2012/05/31(木) 15:42:32.23for (i=0;i<END;++i){
〜
if (i==0 || i==END-1){
if (!i)〜;
else〜;
}
〜}
0029デフォルトの名無しさん
2012/05/31(木) 15:45:38.580030デフォルトの名無しさん
2012/05/31(木) 16:06:13.13ホンマモンのアホはあの人一人だけ
0031デフォルトの名無しさん
2012/05/31(木) 16:28:22.63てか「マジのアホ」が「アホの振り」ってどゆこと?
0032デフォルトの名無しさん
2012/05/31(木) 16:32:59.85消さなきゃならない理由は?
消してもコンパイル後の処理はそんなに変わらないよ。
0033デフォルトの名無しさん
2012/05/31(木) 16:34:30.010034デフォルトの名無しさん
2012/05/31(木) 16:34:35.12ものによるだろ
0035デフォルトの名無しさん
2012/05/31(木) 17:16:52.81「終わってる=解決済み」だけど?
理解出来ないアホなの?
「あの人」ってあんたのことなの?
0036デフォルトの名無しさん
2012/05/31(木) 18:17:42.48お前ん中で終わってんならそれはそれでいいけど
その妄想をさも事実のように脳外へ排泄するのは止めような
朝鮮人でもあるまいし
0037デフォルトの名無しさん
2012/05/31(木) 18:22:15.53「if文1個消えた〜」ってアホだろ
0038デフォルトの名無しさん
2012/05/31(木) 18:27:02.34いや意外と朝鮮人かもしれんぞ
0039デフォルトの名無しさん
2012/05/31(木) 18:27:09.650040デフォルトの名無しさん
2012/05/31(木) 18:31:55.04004128
2012/05/31(木) 18:34:52.82#define DEF2 〜
DEF1;
〜 // i==0
DEF2;
for (i=1;i<END-1;++i){
DEF1;
DEF2;
}
DEF1;
〜 // i==END-1
DEF2;
0042デフォルトの名無しさん
2012/05/31(木) 18:43:23.60そもそも
>4
で終わってるだろ
0043デフォルトの名無しさん
2012/05/31(木) 21:13:15.610044デフォルトの名無しさん
2012/05/31(木) 21:22:16.76韓国政府から不当な補助金の支給を受け、米国で洗濯機を低価格で販売しているとの暫定的結論を出した。
外交筋によると、米商務省の国際貿易局(ITA)は同日、韓国製洗濯機をめぐる提訴と関連し、
「韓国政府が補助金を支給し、国際貿易法規に違反したとの予備判定を下した」と明らかにした。
商務省は早ければ年末に補助金支給に対する最終判断を下す予定。
ワールプールの主張が受け入れられれば相殺関税が課される。
http://japanese.yonhapnews.co.kr/headline/2012/05/31/0200000000AJP20120531001000882.HTML
0045デフォルトの名無しさん
2012/05/31(木) 22:49:03.82ここまでは出来たけど、鈍角三角形の判定が出ない…
誰かヒント下さい
0046デフォルトの名無しさん
2012/05/31(木) 22:57:13.690047デフォルトの名無しさん
2012/05/31(木) 23:03:05.08int a, b, c;
なのに
scanf("%f", &a);
ってなんだよ
0048デフォルトの名無しさん
2012/05/31(木) 23:08:49.91ミス
%dだったわ
0049デフォルトの名無しさん
2012/05/31(木) 23:12:13.63鋭角三角形 全ての角か90度未満
鈍角三角形 何れかの角が90度超
0050デフォルトの名無しさん
2012/05/31(木) 23:16:34.55a+b>=c なら三角形にならない
a*a+b*b>c*c なら 鋭角三角形
a*a+b*b==c*c なら 直角三角形
a*a+b*b<c*c なら 鈍角三角形
>a+b>=c なら三角形にならない
本当か?3, 4, 5 は三角形じゃないのか?
0052デフォルトの名無しさん
2012/06/01(金) 11:26:08.300053デフォルトの名無しさん
2012/06/01(金) 12:44:36.31int a:だけだと宣言されていないと出てしまい、使い方がイマイチ分からないです
0054デフォルトの名無しさん
2012/06/01(金) 12:46:09.81スレチだ
板内をC++で検索しろ
0055デフォルトの名無しさん
2012/06/01(金) 12:48:17.670056デフォルトの名無しさん
2012/06/01(金) 23:28:00.059マスで1パーティーとしたら
a[8]〜i[8]を左上から対応させていく。
a〜iの1〜9をそれぞれランダムにソートして
横一列a[0]a[1]a[2]b[0]・・・c[2]を調べて、1〜9まで重複がなかったらOK
これを9列までやる。
縦一列も同様にやる。
縦と横で18箇所重複がなかった瞬間一つのパズル完成って
なるんですがどうでしょう?
もっと効率の良い方法ありますか?
0057デフォルトの名無しさん
2012/06/01(金) 23:33:32.84二次元配列使うだけでもずいぶん楽になるよ
0058デフォルトの名無しさん
2012/06/01(金) 23:40:26.572.適当な場所に適当な数字を入れる
3.縦・横・エリアの重複チェック。エリアはarea[9][9].row/colなど用意しておくといい
4.解けるかチェック
解けない→2.へ
解ける→完成
0059デフォルトの名無しさん
2012/06/01(金) 23:46:30.98総当たりすりゃあいい
横一列が9!通り、
その中から9本選んで並べるだけじゃん
ラクだろ?
0060デフォルトの名無しさん
2012/06/01(金) 23:46:58.51>>58
なるほど。二次元配列ですか
でも完成する可能性って
1/(9!*2^18)=1/950億じゃないですか?
一つのパズル完成するのに1日くらいかかりませんか?
0061デフォルトの名無しさん
2012/06/01(金) 23:48:39.47計算量が驚くほど減る……なんてのを探してんだろ
0062デフォルトの名無しさん
2012/06/01(金) 23:50:19.53なるほど。
確かに一番上の帯は1〜9までが絶対9!の内どれかですよね。
でも一つの帯パターンでパズル完成が不可能になるケースも
ありませんか?
例えば 132456879
だと不可能とか。
0063デフォルトの名無しさん
2012/06/01(金) 23:57:23.97さすがに二つ目からじゃね?
一本目だけでは決定できない
0064デフォルトの名無しさん
2012/06/02(土) 00:05:10.93やっぱそうですか。
0065デフォルトの名無しさん
2012/06/02(土) 00:18:07.90チャッチャと
巡回群とかのパワーを借りて
サッサとできそうな気がする
そこんところはGAPとか使えばいいし
0066デフォルトの名無しさん
2012/06/02(土) 01:37:47.760067デフォルトの名無しさん
2012/06/02(土) 05:54:52.47いずれにしても、人手で作るのに比べて味気ないから好きじゃないけどね。
他の板(パズル板とか?)にスレがあるだろうからそっちで聞いた方が早そうな。
0068デフォルトの名無しさん
2012/06/02(土) 18:53:05.580069デフォルトの名無しさん
2012/06/02(土) 22:09:31.08巡回群とかGAP」がむずかしい
0070デフォルトの名無しさん
2012/06/02(土) 22:46:01.420071デフォルトの名無しさん
2012/06/03(日) 10:47:00.07 ̄ ̄ ̄二二ニ=-
'''''""" ̄ ̄
-=ニニニニ=-
/⌒ヽ _,,-''"
_ ,(^ω^ ) ,-''"; ;,
/ ,_O_,,-''"'; ', :' ;; ;,'
(.゙ー'''", ;,; ' ; ;; ': ,'
_,,-','", ;: ' ; :, ': ,: :' ┼ヽ -|r‐、. レ |
_,,-','", ;: ' ; :, ': ,: :' d⌒) ./| _ノ __ノ
0072デフォルトの名無しさん
2012/06/03(日) 11:20:17.76(前略)
民放のディレクターなら誰でも知っているように、テレビを見ているのは国民の中でも知的水準の低い層で、平均レベルは中学生ぐらいだ。
NHKでさえ、ニュース番組の視聴率が最高なのはスポーツコーナーだ。それに迎合してスポーツ・芸能ネタをやれば数字がとれることはわかっているが、メディアとしてのプライドが歯止めをかけている。
だからテレビ朝日のように羞恥心を捨ててバカに迎合すれば、数字をとるのは簡単だ。それは戦争中に「国民の火の玉が炸裂する」などと大衆を煽動して部数を増やした朝日新聞と同じだ。
ヒトラーは「大衆は女のように感情だけで動く」と言ったが、朝日新聞グループもヒトラー的マーケティング手法をとっているのだろう。
(後略)
http://ikedanobuo.livedoor.biz/archives/51791430.html
朝日系列だけじゃないですけれどもね。
B-CAS 崩壊を一番に報道したところのみ、まともな報道機関として認めてあげよう。
0074デフォルトの名無しさん
2012/06/03(日) 17:38:06.690075デフォルトの名無しさん
2012/06/04(月) 09:31:52.880076デフォルトの名無しさん
2012/06/04(月) 10:02:01.63うっせーバカ
VIPでやれ
0077デフォルトの名無しさん
2012/06/04(月) 19:31:25.28死ねや
0078デフォルトの名無しさん
2012/06/04(月) 21:09:38.97ボードの仕様
int B[8*16]; /* 0空。1〜7ぷよの色 */
0079デフォルトの名無しさん
2012/06/04(月) 21:14:57.66ホントに
B[8*16]
なのかよ
B[8][16]
じゃあねーーーのかよ
ホントのホントに、一時限行列で
テトリスのようなモンを作り出せ、
っていうんだな?
0080デフォルトの名無しさん
2012/06/04(月) 21:17:29.89008278
2012/06/04(月) 21:40:14.870083デフォルトの名無しさん
2012/06/04(月) 21:43:47.15「できるだけ短い」の定義は?
0084デフォルトの名無しさん
2012/06/04(月) 21:46:20.87008578
2012/06/04(月) 21:46:57.49ここに1レスで貼れる程度(1行100文字程度で15、6行)が最低ライン。
それより短ければ短いほど良い。
というゲーム。
008678
2012/06/04(月) 21:54:24.39全体を消えぷよ判定する仕様
0087デフォルトの名無しさん
2012/06/04(月) 21:55:17.72エラーメッセージの通りなんでしょうけれども、色々弄ってもうまく行かず3日ほど悩んでます。
tescal.c: 関数 ‘main’ 内:
tescal.c:69:1: 警告: 互換性のないポインタ型から 3 番目の ‘func1’ の引数に渡しています [デフォルトで有効]
tescal.c:17:5: 備考: expected ‘struct hoge_t *’ but argument is of type ‘struct hoge_t (*)[31]’
開発環境はFedora16+gcc
エディタはgeany使ってます。
どなたか教えて頂けますでしょうか。
http://codepad.org/pfZsf6P4
0088デフォルトの名無しさん
2012/06/04(月) 22:12:41.43func1(t_year, t_month, hog);
にすりゃいいんじゃないの
0089デフォルトの名無しさん
2012/06/04(月) 22:29:06.27無理だった
バカみたいに詰めれば収めるのは出来るけど
それだと行数制限というより文字数制限になるしな
void check_r(int D[8][16], int B[8][16], int x, int y, int col, int mark, int *num){
if(x<0 || 8<=x || y<0 || 16<=y || D[x][y]!=0 || B[x][y]!=col) return;
*num+=1;
D[x][y]=mark;
check_r(D, B, x+1, y, col, mark, num);
check_r(D, B, x-1, y, col, mark, num);
check_r(D, B, x, y+1, col, mark, num);
check_r(D, B, x, y-1, col, mark, num);
}
void check(int D[8][16], int B[8][16]){
int x, y, num, mark=1, i, j;
memset(D, 0, sizeof(int)*8*16);
for(x=0;x<8;x++){
for(y=0;y<16;y++){
if(B[x][y]==0 || D[x][y]!=0) continue;
num=0;
check_r(D, B, x, y, B[x][y], ++mark, &num);
if(num>=4){
for(i=0;i<16;i++){
for(j=0;j<8;j++){
if(D[j][i]==mark) D[j][i]=1;
}
}
}
}
}
}
0090デフォルトの名無しさん
2012/06/04(月) 22:38:11.40ありがとうございます、main内のfunc1をそのように変更したところ、
エラーは出ていませんが値が持ってこれてないようです。
(./hogを実行したところ、0が表示されただけでした。)
値渡しではなくアドレス渡しをすれば良いのかも知れませんがなんともです。
テスト用のprintf文(37-38)を有効にしたところファイルは読めている事を確認しました。
csvの中身は
1,test1
2,test2
という内容になっています。
0091デフォルトの名無しさん
2012/06/04(月) 22:59:04.03009278
2012/06/04(月) 23:10:52.68暫定1位
0093デフォルトの名無しさん
2012/06/04(月) 23:51:16.74ttp://codepad.org/txzmZp69
mallocは不要なので削った。結果はこうなった
1test1
2test2
0094デフォルトの名無しさん
2012/06/04(月) 23:58:40.29ありがとうございます、比較してみましたがmallocの部分とprintfの部分だけでしたね。
無事動きましたので感謝しています。
>>91と合わせて考えてみるにmallocするならmain関数の中で無いとダメという事だったのでしょうか。
また、構造体使うときはmallocする必要は無いという事なんでしょうか。
0095デフォルトの名無しさん
2012/06/05(火) 00:20:26.83http://codepad.org/m32CRrqO
> hoge_t hog[31];
自分で構造体配列を宣言して要素31個分のメモリをスタックに確保しといて「だったのでしょうか」もクソもあるか
0096デフォルトの名無しさん
2012/06/05(火) 00:28:46.58mallocするならmain関数の中で無いとダメという事だったのでしょうか。
→そんな事はない
また、構造体使うときはmallocする必要は無いという事なんでしょうか。
→場合による
配列で確保できるならそうした方がいいし、動的に確保したい場合はmallocを使う
ttp://codepad.org/NC422HNs
0097デフォルトの名無しさん
2012/06/05(火) 05:34:49.60ファイルポインタfpから1文字読み込んで、その文字をint型として返す
文字コードを格納するための関数って理解でおk?
0098デフォルトの名無しさん
2012/06/05(火) 05:44:24.77おk
ttp://ideone.com/6SWhX
0099デフォルトの名無しさん
2012/06/05(火) 07:16:27.85#include <conio.h>
#include <windows.h>
int main(void){
char ka;
int kb;
while(1){
system("cls");
printf("「a」か方向キー「↑」を押してください\n");
kb=getch( );
if (kb!=0){continue;}
kb=getch( );
if(kb==0x61){ka='a';}
if(kb==0x48){ka='u';}
if(ka=='a'){system("cls");
printf("bが押されました");
Sleep(1000);}
else if(ka=='u'){system("cls");
printf("↑が押されました");
Sleep(1000);}
}
}
「a」か「↑」を押すとそれぞれメッセージが出るように作ったのですが
・「a」を押しても反応しない ・「↑」を押した後、他の方向キーを押すと「↑」のメッセージが出てしまう
の2つを解決したいのですがどうすればいいでしょうか?
0100デフォルトの名無しさん
2012/06/05(火) 07:41:28.93Aの文字コード41から順番に表示されると思いきや1個飛ばし、あとコメントアウトしてる部分を本文化すると、
何も表示されないで終了になってしまいます。
#include <stdio.h>
unsigned char buffer[10000];
int main(int argc, char *argv[]){
FILE *fp_i,*fp_o;
int i,c;
fp_i = fopen("a.txt","rb");
/*if(fp_i = NULL) {
fprintf(stderr,"Input File cannot open\n");
exit(8);
}*/
i = 0;
while((c = fgetc(fp_i)) !=EOF){
c = fgetc(fp_i);
printf("c = %02X \n",c);
buffer[i] = c;
i++;
}
fclose(fp_i);
return 0;
}
a.txtの内容:ABCDEFGHIJK
実行結果
c = 42
c = 44
c = 46
c = 48
c = 4A
c = FFFFFFFF
0101デフォルトの名無しさん
2012/06/05(火) 07:48:40.57c = fgetc(fp_i);
なんで二回書いてんだ
0102デフォルトの名無しさん
2012/06/05(火) 07:57:32.61有難うございます。
/*if(fp_i = NULL) {
fprintf(stderr,"Input File cannot open\n");
exit(8);
}*/
の部分を本文にするとなにも起こらないで終了する理由はわかりますでしょうか?
本からのサンプルプログラムなんですが。
0103デフォルトの名無しさん
2012/06/05(火) 08:01:26.150104デフォルトの名無しさん
2012/06/05(火) 08:05:23.030105デフォルトの名無しさん
2012/06/05(火) 08:08:33.53多分こうでも書かないと気付かない
0106デフォルトの名無しさん
2012/06/05(火) 08:10:51.91北朝鮮人民軍総参謀部は4日、韓国の李明博政権を支える保守系メディアが、
北朝鮮で始まった朝鮮少年団創立66周年行事と金正恩労働党第1書記を「侮辱した」と反発、李政権などに対し、謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める通告を公表した。朝鮮中央通信が伝えた。
通告は、韓国紙の朝鮮日報、中央日報、東亜日報などが「李政権に動員され」、66周年行事について「(大衆の)歓心を買うための行事」「ヒトラーをまねしている」と報じたと反発。
正恩氏や行事に参加した子供を侮辱したと非難している。
http://dailynews.yahoo.co.jp/fc/world/south_north_korea/?1338793745
謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める
だっておwwwwwwwwwwwwww
0107デフォルトの名無しさん
2012/06/05(火) 08:37:45.18ttp://ideone.com/qDmD7
0108デフォルトの名無しさん
2012/06/05(火) 09:03:33.08有難うございます。
酷過ぎるミスだ・・・
0110デフォルトの名無しさん
2012/06/05(火) 11:28:45.89条件式で=と==を見間違えるのはよくある、
もののサイト・ものの本でも「よくあるミス」として注意・解説されてる
問題は、fgetcを二度書いてるところ、
こっちの方がより重篤な勘違いのように見える
これだけデカデカと書かれているのを「見落とす」てのはまずあり得ない、
つまりは、見えているのに見えていない
(==のところは文字通りに「見えなかった」)
fgetcの二度書きは、何か根本的なところで理解しそこなっているような気がしてならない
0111デフォルトの名無しさん
2012/06/05(火) 11:43:06.83それに単なるテキストでデカデカもクソもない
問題は思い込みで見てしまうこととデバッガを使わないこと
デバッガが使えないなら机上デバッグの技術を身につけるべき
0113デフォルトの名無しさん
2012/06/05(火) 12:41:39.13韓国テレビの番組で日本海表記の地図を使用し、非難殺到=韓国
韓国MBC放送の日曜番組『出発! ビデオ旅行』の3日の放送で、「日本海」と表記
した地図を使用していたとして、韓国世論から非難が巻き起こった。多数の韓国メディアが4日、大きく取り上げた。
『出発! ビデオ旅行』は新作映画の紹介から名作など、さまざまなジャンルの映画を
紹介する番組。3日の放送で日本海が「SEA OF JAPAN」と表記された世界地図を
使用したという。
番組放送後に視聴者掲示板には、抗議や非難の書き込みが殺到した。番組の制作陣は
世論の非難を受けた当日、公式サイトに謝罪文を掲載し「今後はこのようなミスを絶対に
しないように最善を尽くす」との立場を表明した。しかし、同番組の5月6日の放送分で
も日本海と表記された地図を使用したことが発覚し、番組やテレビ局への非難はしばらく続く見通しだ。
韓国メディアは「目を疑う場面が電波に乗った」「東海ではなく日本海と表記した地図
を使用して視聴者の怒りを買った」などと伝えた。現在MBC放送は2月から突入した
ストライキがまた続いており番組に支障をもたらしていることも「ミス」の原因とみるメディアもある。
0114デフォルトの名無しさん
2012/06/05(火) 13:09:34.00デバッガってそんなに敷居が高いのかね?
0115デフォルトの名無しさん
2012/06/05(火) 13:21:36.960116デフォルトの名無しさん
2012/06/05(火) 13:53:26.79敷居を下げるためのIDE
#include <windows.h>ならvc++で簡単だろ
0117デフォルトの名無しさん
2012/06/05(火) 14:04:38.630118デフォルトの名無しさん
2012/06/05(火) 14:06:51.450119デフォルトの名無しさん
2012/06/05(火) 14:17:31.790120デフォルトの名無しさん
2012/06/05(火) 14:29:44.36使えなくなった途端に馬脚を現すような奴は「道具に使われてる」だけ
0121デフォルトの名無しさん
2012/06/05(火) 14:43:49.07それは詭弁だな
100kmの道のりを自動車で走らずに徒歩で行って「どうだ自動車なんかいらないだろう
100kmを自動車で走る奴は自動車に使われてるだけ」と言ってるのと全く同じ
傍から見ると馬鹿にしか見えない
0122デフォルトの名無しさん
2012/06/05(火) 14:46:13.82現場はいつも一刻を争うしバグは絶対に許されない
悠長な事は言ってられない
0123デフォルトの名無しさん
2012/06/05(火) 15:13:32.10何を言っているのか分からない
「道具が無くても出来るなら道具なんか要らない」とは言ってないんだが
道具が無くなった(使えなくなった)とき
「道具が無いから出来ません」→「道具に使われてる奴」
「道具の代わりを考えます」→「道具を使ってる奴」
ってことだぞ
0124デフォルトの名無しさん
2012/06/05(火) 15:22:48.400125デフォルトの名無しさん
2012/06/05(火) 15:33:08.840126デフォルトの名無しさん
2012/06/05(火) 15:52:04.90仕事の種類にも拠るけど、
そんな時のためにネカフェでもなんとかなるように用意しておくのが技師ってもんだ。
0127デフォルトの名無しさん
2012/06/05(火) 16:07:23.110128デフォルトの名無しさん
2012/06/05(火) 16:07:54.77頭がバグってないか、そいつ?
0129デフォルトの名無しさん
2012/06/05(火) 16:23:40.08どこのマリーアントワネットだよw
0130デフォルトの名無しさん
2012/06/05(火) 16:45:02.91( ゚,_ゝ゚)バカジャネーノ
道具は「使う」もんだ
「使われる」のはアホだけ
0131デフォルトの名無しさん
2012/06/05(火) 16:54:50.13だからそう言ってるだろ
馬鹿ですか?
0132デフォルトの名無しさん
2012/06/05(火) 17:46:16.220133デフォルトの名無しさん
2012/06/05(火) 17:53:07.83北朝鮮人民軍総参謀部は4日、韓国の李明博政権を支える保守系メディアが、
北朝鮮で始まった朝鮮少年団創立66周年行事と金正恩労働党第1書記を「侮辱した」と反発、李政権などに対し、謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める通告を公表した。朝鮮中央通信が伝えた。
通告は、韓国紙の朝鮮日報、中央日報、東亜日報などが「李政権に動員され」、66周年行事について「(大衆の)歓心を買うための行事」「ヒトラーをまねしている」と報じたと反発。
正恩氏や行事に参加した子供を侮辱したと非難している。
http://dailynews.yahoo.co.jp/fc/world/south_north_korea/?1338793745
謝罪するか、北朝鮮の攻撃を受けるか「最後の選択」を求める
だっておwwwwwwwwwwwwww
0134デフォルトの名無しさん
2012/06/05(火) 22:50:05.05>>95
スタック、ヒープについて勉強してみました。 言われたことが少しは理解できました。
また、サンプル有難うございました、色々な書き方が出来て面白い。
>>96
サンプルありがとうございました。
まだまだ勉強不足なので頑張ります。
0135デフォルトの名無しさん
2012/06/05(火) 23:14:32.01べつのアプローチで試してみたが短くならなかった。x86のgccならreturn r;を消しても戻るはずだがcodepadだと動かないのでreturnしてる
int W=8,H=16,L=128,T[999],B[8*16],U[999],D[8*16],i,c,*p,*q;
G(d){int r=*(p+d);if(d==-1)r=(i%W>0)**(p-1);if(d==1)r=(i%W<W-1)**(p+1);return r;}
C(d){int r=c==G(d);return r;}
I(int (*f)()){i=0;while(i<L){f();p++;q++;i++;}}
O(){int _(){*p=*q=0;}I(_);}
E(){int _(){*q=C(0)*(C(-W)+C(W)+C(-1)+C(1));}p=B;q=T+W;I(_);}
F(){int _(){*q=(*p>0)*(G(-W)+G(W)+G(-1)+G(1));}p=T+W;q=U+W;I(_);}
J(){int _(){*q|=(*p>0)*(G(-W)>2|G(W)>2|G(-1)>2|G(1)>2);}p=U+W;q=D;I(_);}
f(){p=q=D;O();c=0;while(c++<8){p=T;q=U;O();E();F();J();}}
/* test */
#include <stdio.h>
#include <stdlib.h>
N(int* a){int _(){*q=rand()%8;}srand(time(0));q=a;I(_);}
P(int* a){int _(){if(i%W==0)printf("\n");printf("%d",*p);}p=a;I(_);printf("\n");}
main(){N(B);P(B); f();P(D);}
0136デフォルトの名無しさん
2012/06/06(水) 02:49:50.93すげー
何やってるのかさっぱり分からん
0137デフォルトの名無しさん
2012/06/06(水) 02:57:24.16#include <conio.h>
int main(void){
char k;
int n;
while(1){
n=getch( );
if (n==0x31){printf("1\n");}
if (n==0x32){printf("2\n");}
if (n==0x33){printf("3\n");}
else{continue;}
}
}
#include<stdio.h>
#include <conio.h>
int main(void){
char k;
int n;
while(1){
n=getch( );
if (n==0x31){printf("1\n");}
else if (n==0x32){printf("2\n");}
else if (n==0x33){printf("3\n");}
else{continue;}
}
}
上のような感じにifを連続で多く使った場合とelse ifを連続で多く使った場合で
どちらがより処理速度が速いとか何か処理で違いあるかな?
0138デフォルトの名無しさん
2012/06/06(水) 03:05:07.16例のように簡単な場合は -O2 オプションで全く同じコードが生成された
@ MinGW gcc 4.5.2
0139デフォルトの名無しさん
2012/06/06(水) 03:10:34.270140デフォルトの名無しさん
2012/06/06(水) 04:48:14.22http://japanese.joins.com/article/238/153238.html?servcode=300§code=300
0141デフォルトの名無しさん
2012/06/06(水) 04:58:42.75答えてくれてありがとう、同じだけど念のため付けてた方がいいみたいね
0142デフォルトの名無しさん
2012/06/06(水) 08:15:20.68#if DEBUG
#endif
#if !DEBUG
#endif
これでどうですか
0143デフォルトの名無しさん
2012/06/06(水) 10:57:49.95F11がffffff85、F12がffffff86と出たんだけど
検索だとF11とF12がそれぞれ0x85、0x86でしか出なく、
このffffffってこちらの環境(Win7,64bit)のせいで出てるいるのか
キー入力でF11とF12押した時に反応するようプログラム作ったら
0x85と0x86のじゃなくて0xffffff85と0xffffff86の方で反応します。
この値について何か分かるでしょうか?
0144デフォルトの名無しさん
2012/06/06(水) 11:08:43.95ttp://ideone.com/8WTWm
それはいわゆる符号拡張
charは負数を扱わないのであれば基本的にunsigned charにしとくのが吉
0145デフォルトの名無しさん
2012/06/06(水) 11:21:55.91>これでどうですか
何が?
0146デフォルトの名無しさん
2012/06/06(水) 11:24:31.400148デフォルトの名無しさん
2012/06/06(水) 12:07:31.78あんたの知っているgetchと>143の言っているgetchは違うのだろうよ。
0149デフォルトの名無しさん
2012/06/06(水) 12:10:08.17テンプレいれてもいいんじゃ
0150デフォルトの名無しさん
2012/06/06(水) 12:15:33.88どのwikiのどのページのこと?
0151デフォルトの名無しさん
2012/06/06(水) 12:20:42.63仮引数はそこらのサイトの説明じゃintがついてるから変数じゃないの?って思ってた
0152デフォルトの名無しさん
2012/06/06(水) 12:21:09.210153デフォルトの名無しさん
2012/06/06(水) 13:01:53.97ものすごく初心者ってこと?
なら英語の方も見るといいよ
0154デフォルトの名無しさん
2012/06/06(水) 13:06:15.870155デフォルトの名無しさん
2012/06/06(水) 14:41:41.04#include <windows.h>
int main(void){while(1){
system("cls");
printf(
"□■□\n"
"□■□\n"
"□■□\n"
"□■□\n"
"□■□");
Sleep(500);
system("cls");
printf(
"■■■\n"
"□□■\n"
"□■□\n"
"■□□\n"
"■■■");
Sleep(500);
system("cls");
printf(
"■■■\n"
"□□■\n"
"■■■\n"
"□□■\n"
"■■■");
Sleep(500);
}}
1〜3までを繰り返し表示を切り替える上のようなプログラムを作ると
どうしてもチラつきが出てしまうのですが
なにかチラつきを抑える方法はないでしょうか?
0156デフォルトの名無しさん
2012/06/06(水) 14:44:23.46環境依存の方法でカーソル位置を移動させる
0157デフォルトの名無しさん
2012/06/06(水) 17:51:15.48Vsyncチェック
0158デフォルトの名無しさん
2012/06/06(水) 19:17:35.95普通は裏vramへ描画してダブルバッファリングする
0159デフォルトの名無しさん
2012/06/06(水) 19:46:40.16アホかい。
0160デフォルトの名無しさん
2012/06/06(水) 20:15:43.70フジテレビ電話したら今日の番組の変更は無いと言われた
「皇族の方が亡くなられたのに変更はしないんですか?」
と聞いたら
「今のところありません。よろしくお願いします」だと
国の一大事に捏造人気アイドルの茶番をやるつもりらしい
津田大介 @tsuda
別にAKBに恨みはないし、がんばっていただきたいなと思うけど、国民的に大きく報じる話題は
ほかにもっともっとたくさんありますよねじっさい……。テレビは特に貴重な電波資源使ってるんだし。
http://twitter.com/tsuda/status/210265622502842368
東浩紀 @hazuma
同意。
http://twitter.com/hazuma/status/210266350730481664
0161デフォルトの名無しさん
2012/06/06(水) 22:57:41.11system("cls");
を使わずに(最初のは除く)カーソル移動に変える。
0162デフォルトの名無しさん
2012/06/07(木) 05:46:08.70いいかげん
だ
0163デフォルトの名無しさん
2012/06/07(木) 08:54:35.800164デフォルトの名無しさん
2012/06/07(木) 15:01:22.97その配列をソートし、配列の隣り合う要素の差の最大が最も
小さくなるような6つの数値を算出しなさい。
ただし、6つの数値のうち1つは0とする。
0165デフォルトの名無しさん
2012/06/07(木) 15:27:34.190166デフォルトの名無しさん
2012/06/07(木) 15:58:50.78http://livedoor.blogimg.jp/marketchronicle-moneynews/imgs/d/7/d77299f5-s.gif
0167デフォルトの名無しさん
2012/06/07(木) 15:59:51.20fwriteでファイルに書き込んだ8byteの浮動小数を
hexdumpでフォーマット指定して眺めることはできますか?
hexdumpのオプションの使い方がよくわからないのでよろしくお願いします。
0168デフォルトの名無しさん
2012/06/07(木) 16:01:04.82って感じでたんに並んでいます。
0169デフォルトの名無しさん
2012/06/07(木) 16:16:09.14hexdump -e"%f" hoge.txt
とかかな。環境ないからテストできないけど
0170デフォルトの名無しさん
2012/06/07(木) 16:37:30.49hexdump -e '4/8 "%f "' -e '"\n"' input
0171デフォルトの名無しさん
2012/06/07(木) 16:43:03.47>>170
ありがとうございます!
とりあえず変換はできてるので、あとはスペースで区切ったりしてみます。
0172デフォルトの名無しさん
2012/06/07(木) 16:49:56.910173デフォルトの名無しさん
2012/06/07(木) 18:02:23.710174デフォルトの名無しさん
2012/06/07(木) 23:02:33.94モード2の方なんですが、入力された数値を\マークとカンマ入りにして表示したいんですが\マークが正しく表示されません
どこを直せばいいでしょうか?
0175デフォルトの名無しさん
2012/06/07(木) 23:08:51.18ついでにエラー番号、
#define でなんとかしておいた方がいい
0176デフォルトの名無しさん
2012/06/08(金) 02:31:36.03buf2にコピーした際に、jを1減していない。
つーか、ロジックの見通しの悪いコードだな。
0177デフォルトの名無しさん
2012/06/08(金) 06:48:36.33char x;
x = i;
printf();
0178デフォルトの名無しさん
2012/06/08(金) 06:50:20.09char x;
x = i;
printf("%c\n",x);
これで A が表示されるかと思いきや ) が表示される
どうしてでしょう? ちなみに x = i; の部分でint型からchar型に型変換されている、という認識で正しいでしょうか?
0179デフォルトの名無しさん
2012/06/08(金) 06:53:06.230180デフォルトの名無しさん
2012/06/08(金) 07:18:13.250181デフォルトの名無しさん
2012/06/08(金) 07:52:01.11int fputLong(long num, FILE *fp){ //num(long型):入力データの総文字数 fp:出力ファイルのポインタ
fputc((num>>24) & 0xff,fp);
fputc((num>>16) & 0xff,fp);
fputc((num>>8) & 0xff,fp);
fputc((num) & 0xff,fp);
return 0;
}
右シフトして&演算をして出力していますが、
0xffと&演算を取るのにはどういった意味があるのでしょうか?
0xff = 1111 1111 なので&演算しても元の値がそのまま残ると思うのですが。
0182デフォルトの名無しさん
2012/06/08(金) 07:57:25.27#include <conio.h>
void KEY(int *j1){
int g;
g=getch( );
if(g==0){
g=getch( );
if (0<*j1 && g==0x4b){*j1--;}// 左移動
else if (*j1<2 && g==0x4d){*j1++;}// 右移動
}
}
int main()
{
int j=0;
printf("\nカーソルを合わせる\n");
while(1){
if(j==0){printf("\r→A B C");}
if(j==1){printf("\r A →B C");}
if(j==2){printf("\r A B →C");}
KEY(&j);
}
}
左右のキーで矢印が動くのを作ったのですが
j1に代入された値が使われていないとエラーが出て矢印が動きません
どう修正したらいいでしょうか?
0183デフォルトの名無しさん
2012/06/08(金) 07:59:45.50*j1--; → (*j1)--;
*j1++; → (*j1)++;
0184デフォルトの名無しさん
2012/06/08(金) 08:04:41.43有難うございます、動きました
0185デフォルトの名無しさん
2012/06/08(金) 08:15:01.32ttp://ideone.com/KSbBp
0186デフォルトの名無しさん
2012/06/08(金) 08:22:35.540x41424344 → 0x00004142 & 0x000000FF = 0x42
0x41424344 → 0x00414243 & 0x000000FF = 0x43
0x41424344 → 0x41424344 & 0x000000FF = 0x44
0187デフォルトの名無しさん
2012/06/08(金) 08:54:31.22確かにその論理積演算は無意味だね。
理由は違うけど。
0188デフォルトの名無しさん
2012/06/08(金) 09:00:24.80intからunsigned charに変換して書き出し
だからマスクする必要はないが、ふつーマスクするよね
0189デフォルトの名無しさん
2012/06/08(金) 10:57:08.54いえいえ
0190デフォルトの名無しさん
2012/06/08(金) 11:07:42.06| チョパーリの言うことは全て素直に聞いて
| 日帝様に気に入ってもらわなければいけないニダ!!
\_ ____________________
∨
Λ_Λ
<丶`∀´> Λ_Λ / ̄ ̄ ̄ ̄ ̄
( 両班 ) <丶`∀´>< チョパーリに
| |〈_フ∧アイゴー ⊂ つ | 出稼ぎに行くニダ
〈_フ<´Д`丶> 人 Y \_______
( 白丁 ) レ (_フ
(_(_) アイゴー
888888 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
<丶´Д`> <丶`∀´>< チョパーリに売り飛ばすニダ
(┌斤Y斤⊃⊂ ) \__________
/ / .| | ヽ | | |
└-レ─レ─ゝ〈_フ__フ
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
<# `Д´> < 日帝はウリナラ国民を虐殺し強制連行を行い
( つ. .| 従軍慰安婦を強制連行したニダ!!
| | | | 謝罪と賠償を要求するニダ!
〈_フ__フ \____________
┌────┐
| チョパーリは|
| 反省しる!! |
└──┬─┘ 888888 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
.彡 ⌒ ミ .│ <丶`Д´> < チョパーリ政府は
< #.`Д´>│ (┌斤Y斤) | 従軍慰安婦への謝罪と賠償を!!
( // つ / / .| | ヽ \_______________
ほんとだ。へ〜。http://ideone.com/PF9Eh
0192デフォルトの名無しさん
2012/06/09(土) 00:10:44.690193デフォルトの名無しさん
2012/06/09(土) 09:00:34.26括弧悪い
0194デフォルトの名無しさん
2012/06/09(土) 09:57:56.81へみ猫の耳か
0195デフォルトの名無しさん
2012/06/09(土) 11:59:09.04ここまでは出来たんだけど、min(最小値)の表示がおかしくなるのは何故?
0196デフォルトの名無しさん
2012/06/09(土) 12:03:00.180197デフォルトの名無しさん
2012/06/09(土) 12:05:22.29解決しました
ありがとうございます
0198デフォルトの名無しさん
2012/06/09(土) 12:51:08.92こっちはちゃんとなるんですけど
http://www.dotup.org/uploda/www.dotup.org3073322.jpg
includeを使うと
http://www.dotup.org/uploda/www.dotup.org3073352.jpg
こんな感じになっちゃって・・・(´;ω;`)
だれか解決して下さいませんか?
0199デフォルトの名無しさん
2012/06/09(土) 12:58:18.49エラー EE2209 a.cpp 1: インクルードファイル 'stdio.h' がオープンできない
と出てるように見える
インクルードパスを設定しなきゃいけないんじゃないか
0200デフォルトの名無しさん
2012/06/09(土) 12:59:48.45インクルードパスを設定するだけで直るんですか
0201デフォルトの名無しさん
2012/06/09(土) 13:00:36.21コンパイラの設定をいじるか、新しいコンパイラに替えるか
0202質問者
2012/06/09(土) 13:03:10.46設定をいじるのと新しく替えるのとどっちが楽ですか?
0203デフォルトの名無しさん
2012/06/09(土) 13:14:29.80そうでなければVC++でもいいんじゃね
ttp://cvwww.ee.ous.ac.jp/vc10inst.html
0204質問者
2012/06/09(土) 13:19:01.94Borland C++を使わなきゃいけないんです
設定のいじり方を宜しければ教えてください
0205デフォルトの名無しさん
2012/06/09(土) 13:21:58.940206デフォルトの名無しさん
2012/06/09(土) 13:33:02.63これから勉強するんなら
Cを勉強したい->GCCかTCC
C++を勉強したい->GCC(G++)かMSVC++
を使えるように環境そのものを替えるべき
c++に関して互換性で悪名高きmsvc(msc++)を推薦するのか?
0208デフォルトの名無しさん
2012/06/09(土) 13:53:05.03普段が『自称初心者』を装ったヤツ多いんだよ。
0209デフォルトの名無しさん
2012/06/09(土) 14:05:58.46bcc32のコンパイルオプションで-tWを付けないと16bitコンソールアプリが出来るのか
Borland C++はよく知らないが何か謎だなー
0210デフォルトの名無しさん
2012/06/09(土) 15:47:32.58そういう意味じゃねーよバカが いつもの池沼か?
0211質問者
2012/06/09(土) 16:01:07.14ガチ初心者
0212デフォルトの名無しさん
2012/06/09(土) 16:26:23.71で、なんでとっくの昔に存在価値のなくなったBCCでなきゃいかんの?
0213質問者
2012/06/09(土) 16:30:05.43ちょとまって
質問に質問で返して悪いんだけど
BCCって時代遅れなん?
最近の主流は何?
0214デフォルトの名無しさん
2012/06/09(土) 16:57:13.31http://www.microsoft.com/japan/msdn/vstudio/2010/product/express/offline.aspx
0215デフォルトの名無しさん
2012/06/09(土) 16:59:31.380216デフォルトの名無しさん
2012/06/09(土) 17:48:14.63multilibなgccの-m32/-m64とかと似たようなもんじゃね?
0217デフォルトの名無しさん
2012/06/09(土) 17:56:10.87土日祝GW補正ということですか?
0218はちみつ餃子 ◆8X2XSCHEME
2012/06/09(土) 19:14:58.88BCC 5.5 が公開されたのは 2000 年のことだぞ。 当然だがそれ以降の規格改定 (C++03, C++11) に追従していない。
流れの速いこの業界で 10 年以上も前ってのはさすがに時代遅れと言われても仕方がないわな。
ただ、規模が小さくてインストールが楽だっていうところから初心者向けに紹介しているサイトは多いかも。
0219デフォルトの名無しさん
2012/06/09(土) 19:40:38.270220デフォルトの名無しさん
2012/06/09(土) 23:08:25.54初歩的な質問ですいませんがよろしくお願いします
0221デフォルトの名無しさん
2012/06/09(土) 23:11:40.78if(strcmp(str, "あ") == 0)
0222デフォルトの名無しさん
2012/06/09(土) 23:12:20.99俺ならそういう作業は絶対にやりたくない
sjisとutf8 あたりだろうけど
出来あいのライブラリつかう
0223デフォルトの名無しさん
2012/06/09(土) 23:16:53.04素早い回答ありがとうございます
解決しました
0224デフォルトの名無しさん
2012/06/09(土) 23:48:10.490225デフォルトの名無しさん
2012/06/09(土) 23:50:16.34>char str[100] = "あ";
>
色々と、無駄。
>static const char str[] = "あ";
とでもしておくべき。
0226デフォルトの名無しさん
2012/06/09(土) 23:52:32.90バカは黙ってろ
0227デフォルトの名無しさん
2012/06/10(日) 00:11:05.710228デフォルトの名無しさん
2012/06/10(日) 00:12:45.390229デフォルトの名無しさん
2012/06/10(日) 08:49:29.23,、' : : ,:-'´: : : : : : :\
/: : :/: : : : : : : : : : : : \
/:/ : /: : :, : : : : : :/: : : : : : : ヽ
!': : :/: :/;.、=7;、イ;i: : |: : : : 、: ヽ
!: : /': :'´ ;| 'iァz;、,'ト|: :/;イ: : : }: i l
!: : : : : : :{ `''゛'` !/'´/イ;ィ:/: リ'!
'; : : : : ;|ヾ ,ィ')y'/;ィ:/
ヽ:|'; :{ヘ _ ゝ./!'´ !' あなたは貰えるわ
/' ヽ! 、 ´,. ィ':i/
_,,..../ /` ‐' ´l/リ゛ ミヤネ屋を見たもの。
ノ `丶、 {、 ´ http://i.imgur.com/GPVGM.jpg
/ ' ‐- 、 \トヽ、
,イ;;;:::、:_:::::::`ヽ、 _\!`)、
日本テレビ 社長 「不正ではない、問題ない」
フジテレビ 社長 「不正ではない、問題ない」
テレビ朝日 社長 「不正ではない、問題ない」
毎日放送 社長 「不正ではない、問題ない」
テレビ東京 社長 「不正ではない、問題ない」
NHK ただイマ! 「不正ではない、問題ない」
しんぶん赤旗 「不正ではない、問題ない」
0230デフォルトの名無しさん
2012/06/10(日) 09:34:54.290231デフォルトの名無しさん
2012/06/10(日) 09:40:49.410232デフォルトの名無しさん
2012/06/10(日) 09:41:52.710233220
2012/06/10(日) 16:14:00.88char kotoba[100] = "\0";
char gobi[2] = "\0";
int i = 0;
scanf ("%s",kotoba)
i = strlen(kotoba);
strcat (gobi,&kotoba[i-2]);
strcat (gobi,&kotoba[i-1]);
if(strcmp(gobi,"あ") == 0)
{printf ("い")}
どこが違うのでしょうか?
gobiを出力してみると目的の字の後に半角文字が出力されています
なぜgobiに2バイト文字+1バイト文字?が入ることが出来るのでしょうか?
0234デフォルトの名無しさん
2012/06/10(日) 16:17:11.96純Cスレなんて超過疎化しそうだな
0235デフォルトの名無しさん
2012/06/10(日) 16:34:47.170236デフォルトの名無しさん
2012/06/10(日) 17:08:10.50strcat()の使い方が大間違い。
>>235
見当違い。
0237デフォルトの名無しさん
2012/06/10(日) 17:21:38.71何をやりたいのかいまいちだけど
char gobi[2];
これで2バイト文字入れちゃうと終端文字が入らなくなるよ。
終端文字で終端されていないと、str**系の関数が正しく動作しないです。
0238デフォルトの名無しさん
2012/06/10(日) 17:29:58.57マルチバイト文字を扱うならmb系の関数があるけど
コンパイラ等の情報がなければ進展しない
0239デフォルトの名無しさん
2012/06/10(日) 19:10:12.960240デフォルトの名無しさん
2012/06/10(日) 20:39:47.990241デフォルトの名無しさん
2012/06/10(日) 21:46:09.750242デフォルトの名無しさん
2012/06/10(日) 22:18:38.660243デフォルトの名無しさん
2012/06/10(日) 22:23:15.73みても、どういう手順でどう処理をしているのか理解できません。どなたか
解説お願いします。
n … 移動させる円盤の枚数
from … 移動元の棒の名前
work … 作業用に使う棒の名前
dest … 移動先の棒の名前
void Hanoi(int n,char *from,char *work,char *dest)
{
if(n>=2) Hanoi(n-1,from,dest,work);
printf("%d を %s から %s へ\n",n,from,dest);
if(n>=2) Hanoi(n-1,work,from,dest);
}
int main(void)
{
Hanoi(3,"A","B","C");
return 0;
}
0244デフォルトの名無しさん
2012/06/10(日) 22:33:14.43そのたったそれだけの処理が再帰の本体だなんて
それで答えが出るからまた驚きだ
しかも処理をやっているようには見えない、
全然見えない
ひさびさにそういう恐怖を感じることができた
中身がカラッポなのに処理が出来ることの恐怖と素晴らしさ
それが詰まってる
0245デフォルトの名無しさん
2012/06/10(日) 22:45:38.04高校数学くらい真面目にやれ
0246デフォルトの名無しさん
2012/06/10(日) 22:56:41.930247デフォルトの名無しさん
2012/06/11(月) 03:46:08.86例題11-3の分割コンパイルを行ってますが
ttp://codepad.org/lVSt09pB
ttp://codepad.org/kT3pPHxI
ttp://codepad.org/96Vhj9I7
エラー E2313 main.c 10: 定数式が必要(関数 main )
と出てしまいます
誰か指摘していただけますでしょうか?
コンパイラはBCCを使用しております
0248デフォルトの名無しさん
2012/06/11(月) 04:03:06.97Bccは過去の遺物なので、const intでも定数として使えません。
近代的なコンパイラで試行するか、マクロ定数に置き換えましょう。
0250デフォルトの名無しさん
2012/06/11(月) 06:31:34.991文字ずつではなく複数文字を1つの配列にいれることはできないのでしょうか?
例:
char+[3];
char+[0] = "ABC";
char+[1] = "BC";
char+[2] = "C";
仮に char+型と仮定するとこんな感じです。
お願いします。
0251デフォルトの名無しさん
2012/06/11(月) 06:44:08.16ttp://ideone.com/9kdSa
ポインタの配列を使えばできるが
動的に文字列の内容を変えたいとかもっと高度な事をしたければC++のstd::stringを使う
0252デフォルトの名無しさん
2012/06/11(月) 07:04:39.540253デフォルトの名無しさん
2012/06/11(月) 07:21:45.01>複数文字を1つの配列にいれることはできないのでしょうか?
↓こういうことでは無いの?
char s[3];
memcpy(s, "ABC", 3);
0254デフォルトの名無しさん
2012/06/11(月) 09:19:03.65http://hayabusa3.2ch.net/test/read.cgi/news/1339372752/
2012年6月9日、光明日報は、社会科学院の宗波(ゾン・ボー)氏による文化遺産保護に関する記事を掲載、
保護を徹底しなければ韓国に盗まれると警告した。
6月9日は第7回目となる中国の文化遺産デー。光明日報は再生できない貴重な資源だが、
中国の文化遺産保護は遅れていると指摘。遺跡や文化財保護の問題も深刻だが、それ以上に無形文化遺産の遅れが目立つという。
無形文化遺産の保護は中華民族の文化的基盤を揺るがし、文化安全保障にも影響すると警告している。
その事例としてあげられたのが韓国。2007年に孔子を祭る「祭孔大典」を世界無形文化遺産に申請したほか、
活版印刷は韓国の発明だといったり、中国の文化を奪おうとする動きが目立つという。
そうした動きが国家ぐるみのものであると示すのが1万ウォン紙幣。中国の張衡が発明した地動儀が図案として採用されている
(地動儀は世界初の地震計。韓国の紙幣に印刷されているのは天体観測器具の渾天儀で誤りと見られる)。
韓国の学者は地動儀が中国の発明であることを知っているが、政府やビジネスマンはそれを韓国文化の一部分に変えてしまった。
また紙の発明も韓国だとする主張もあるという。もし中国が無形文化遺産の保護を徹底しなければ、
中国民族の特色ある文化と歴史は他国のものとなってしまうだろう。
http://www.recordchina.co.jp/group.php?groupid=61984
0255デフォルトの名無しさん
2012/06/11(月) 09:55:59.03#include <conio.h>
void botan(int *b){
*b=getch( );
}
int main()
{
int f;
while(1){
printf("ENTERを押して終了\r");
botan(&f);
if(f==13) break;
else continue;
}
}
上のbreakとcontinueをイメージ的に下のような感じに関数内にしたいのですが
whileから出して動作させることはできないでしょうか?
void botan(int *b){
*b=getch( );
if(*b==13) break;
else continue;
}
int main()
{
int f;
while(1){
printf("ENTERを押して終了\r");
botan(&f);
}
}
0256デフォルトの名無しさん
2012/06/11(月) 10:11:41.94ttp://ideone.com/4flMp
0257デフォルトの名無しさん
2012/06/11(月) 10:51:03.380258デフォルトの名無しさん
2012/06/11(月) 10:58:04.96早速ありがとうございます
0259デフォルトの名無しさん
2012/06/11(月) 13:09:11.12intの配列へのポインタを返す関数func(パラメータなし)の関数プロトタイプ宣言の書き方を教えてください。
また、それを受ける側の変数の宣言(配列へのポインタ?)の仕方も教えてください。
よろしくお願いいたしますm(_ _)m
0260デフォルトの名無しさん
2012/06/11(月) 13:12:05.71struct hoge {
int foo[20][30];
};
struct hoge* func(void)
{
static struct hoge body;
return &body;
}
0261デフォルトの名無しさん
2012/06/11(月) 13:41:25.56ttp://ideone.com/RlHA6
0262デフォルトの名無しさん
2012/06/11(月) 14:24:17.32int (*fnc())[3]
{
static int v[2][3];
return v;
}
void x()
{
int (*p)[3] = fnc();
p[1][1] = 2;
}
0263NAS6 ◆n3AmnVhjwc
2012/06/11(月) 14:34:47.09int* hoge(int* p) {
int i,j;
for(i=0;i<10;i++){for(j=0;j<10;j++)p[i*10+j]=1;}
return p;
}
int* hage(int p[10][10])
{
int i,j;
for(i=0;i<10;i++){for(j=0;j<10;j++)p[i][j]=2;}
return &(p[0][0]);
}
void main()
{
int i,j,p[10][10]={0},*pp,(*ppp)[10]; pp=&(p[0][0]); pp=hoge(pp);
for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",pp[i*10+j]);}printf("\n");}
printf("\n");
ppp=(int (*)[10])&(p[0][0]);
ppp=(int (*)[10])hage(ppp); for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",ppp[i][j]);}printf("\n");}
printf("\n");
}
お好きなほうを
0264NAS6 ◆n3AmnVhjwc
2012/06/11(月) 14:41:05.68さんのを見ると
int (*hage(int p[10][10]))[10]
の関数宣言で良いんだな
0265NAS6 ◆n3AmnVhjwc
2012/06/11(月) 14:43:46.380266デフォルトの名無しさん
2012/06/11(月) 14:55:18.78でもダメだorzここまで複雑になると文法の理解が足りなくて読めない><
みなさんどうやって勉強されたのですか?
もしよろしければ教えてください
C言語のプロになりたくて......
0267NAS6 ◆n3AmnVhjwc
2012/06/11(月) 14:57:14.980268NAS6 ◆n3AmnVhjwc
2012/06/11(月) 15:13:09.15int* hoge(int* p) {
int i,j,(*pp)[10];
pp=(int (*)[10])p;
for(i=0;i<10;i++){for(j=0;j<10;j++)pp[i][j]=1;}
return p;
}
int (*hage(int p[10][10]))[10] {
int i,j;
for(i=0;i<10;i++){for(j=0;j<10;j++)p[i][j]=2;}
return p;
}
void main() {
int i,j,p[10][10]={0},*pp,(*ppp)[10];
pp=&(p[0][0]);
pp=hoge(pp);
ppp=(int (*)[10])pp;
for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",ppp[i][j]);}printf("\n");}
printf("\n");
ppp=(int (*)[10])&(p[0][0]);
ppp=hage(ppp);
for(i=0;i<10;i++){for(j=0;j<10;j++){printf("%d ",ppp[i][j]);}printf("\n");}
printf("\n");
}
hogeをおすすめする
hageはコピーコストがかかるよ
0269デフォルトの名無しさん
2012/06/11(月) 15:34:24.46//intの配列へのポインタを返す関数func(パラメータなし)の関数プロトタイプ宣言の書き方を教えてください。
また、それを受けとって関数内で関数ポインタ配列を宣言し、その先頭アドレスを返す
関数プロトタイプの書き方を教えてください
こういうの普通に出てくるしな
仕事でtypedefなしに書くと叱られるけど
0270NAS6 ◆n3AmnVhjwc
2012/06/11(月) 15:34:57.980271デフォルトの名無しさん
2012/06/11(月) 15:49:00.83x()[1][1]なんて書き方した事ないぞ
int (*fnc(void))[10]
{
static int v[10][10];
return v;
}
int (*x(void))[10]
{
int (*p)[10] = fnc();
p[1][1] = 10;
return p;
}
int main(void)
{
printf("x[1][1] = %d\n", x()[1][1]);
return 0;
}
0272デフォルトの名無しさん
2012/06/11(月) 16:00:11.26もっと短く書くと
int (*fnc(void))[10]
{
static int v[10][10];
return v;
}
int (*x(void))[10]
{
fnc()[1][1] = 10;
return fnc();
}
int main(void)
{
printf("x[1][1] = %d\n", x()[1][1]);
return 0;
}
0273NAS6 ◆n3AmnVhjwc
2012/06/11(月) 16:02:42.08衝突が嫌ならポインタ渡しだそ
0274デフォルトの名無しさん
2012/06/11(月) 16:33:48.58消滅するからだろう
0275デフォルトの名無しさん
2012/06/11(月) 16:37:56.440276NAS6 ◆n3AmnVhjwc
2012/06/11(月) 16:58:54.27サブルーチン
メインループ
main関数
変数宣言は参照のルーチンレベル一つ下でいい
参照のルーチンレベル以上で宣言するならstaticだけど避けるべき
0277デフォルトの名無しさん
2012/06/11(月) 17:04:06.69あんたの言いたい事は分かるけど今は>>259さんのプログラムの書き方について
議論してるんだから
0278NAS6 ◆n3AmnVhjwc
2012/06/11(月) 17:16:14.92int *hoge(int *p){
int pp;
static int s=2;
pp=p;pp=&g;pp=&s;//どれか
return pp;
}
void main(){
int *p;
*p=1;
p=hoge(p);
}
ポインタ渡し>グローバル>static
だろ
0279NAS6 ◆n3AmnVhjwc
2012/06/11(月) 17:27:40.97main訂正
int i=1,*p=&i;
0280NAS6 ◆n3AmnVhjwc
2012/06/11(月) 17:46:02.050281デフォルトの名無しさん
2012/06/11(月) 17:50:45.020282デフォルトの名無しさん
2012/06/11(月) 17:52:54.460283デフォルトの名無しさん
2012/06/11(月) 17:55:12.22↓
グローバル変数でいいだろ
アホですか?
0284デフォルトの名無しさん
2012/06/11(月) 18:40:18.38??? mozi(???){
printf("表示成功\n");
}
int main(void)
{
mozi(???);
}
関数の呼び出しで数値や文字を扱わないで
printfで文章だけ表示させるさいに戻り値と引数はどうするのでしょうか?
0285デフォルトの名無しさん
2012/06/11(月) 18:41:30.49{
printf("fuck!!\n");
}
0287デフォルトの名無しさん
2012/06/11(月) 20:09:22.08intの配列へのポインタを返す関数func(パラメータなし)の関数プロトタイプ宣言の書き方を教えてください。
また、それを受けとって関数内で関数ポインタ配列を宣言し、その先頭アドレスを返す
関数func2のプロトタイプ宣言の書き方を教えてください
なおどの関数もfuncで宣言した配列へのポインタを返すものとします
0288デフォルトの名無しさん
2012/06/11(月) 20:09:44.93int (*func(void))[10]
{
static int v[10][10];
return v;
}
int (*f1(int (*p)[10]))[10]
{
p[1][1] = 10;
return p;
}
int (*f2(int (*p)[10]))[10]
{
p[2][2] = 20;
return p;
}
int (*(*func2(int (*p)[10])))(int (*p2)[10])[10]
{
static int (*(*f[])(int (*)[10]))[10] = {f1, f2};
return f;
}
int main(void)
{
printf("%d\n", f1(func())[1][1]);
printf("%d\n", f2(func())[2][2]);
return 0;
}
0289デフォルトの名無しさん
2012/06/11(月) 20:14:00.20単に32ビットのデータに過ぎないわけで
unsigned char address[4];
に入れてもいいし
unsigned int address;
に入れてもいいしやな
0290デフォルトの名無しさん
2012/06/11(月) 20:27:20.520291デフォルトの名無しさん
2012/06/11(月) 20:29:27.54ちなみに
int (*(*func2(int (*p)[10])))(int (*p2)[10])[10]
を
int (*(*func2(int (*p)[10])))(int (*p2)[10])
にすると警告が出ますが動きます
x86+BCC6.4.4です
しかし警告が出るという事はポインタの互換性がないので、アーキテクチャや
コンパイラによってはバグるでしょう(鼻から悪魔)
0292デフォルトの名無しさん
2012/06/11(月) 20:37:22.32{
static int data[2][2];
data[0][0] = 1;
data[0][1] = 2;
data[1][0] = 3;
data[1][1] = 4;
return &data[0][0];
}
int main(int argc, char *argv[]){
unsigned int address = 0;
address = (unsigned int)sub();
printf("addr: %x\n", address);
printf("data[1][1]: %d\n", *((int *)address+3));
return 0;
}
///////////////////
./a.exe
addr: 403010
data[1][1]: 4
こんなんで駄目なん
0293デフォルトの名無しさん
2012/06/11(月) 20:44:00.41キャストをせずに正確に書きたいのです
0294デフォルトの名無しさん
2012/06/11(月) 21:14:32.78いえいえ
0295デフォルトの名無しさん
2012/06/11(月) 21:21:07.50int (*(**func2(int (*p)[10]))(int (*p)[10]))[10];
0296デフォルトの名無しさん
2012/06/11(月) 21:31:43.26通りましたありがとうございます!!
**と2つ必要だとは・・
cdeclでは
func2 is a function with int (*p)[10] returning pointer to pointer to function with int (*p)[10] returning pointer to array[10] of int
となりましたので、関数のポインタ配列がポインタのポインタとして表現しなければならないわけですね
これを関数のポインタ配列として表現したいところですがCはポインタ配列といえども配列を返す
事は出来ないのでこうなるわけですね
よく理解出来ました!
0297デフォルトの名無しさん
2012/06/11(月) 21:47:36.55int main(void)
{
printf("%d\n", func2(f1(func()))[0](f1(func()))[1][1]);
printf("%d\n", func2(f1(func()))[1](f1(func()))[2][2]);
return 0;
}
なんて書き方になってしまい非実用的ですがCの複雑な宣言を理解するにはもってこいのようです
0298デフォルトの名無しさん
2012/06/11(月) 22:01:53.62何か読み方のコツといったものはあるのでしょうか
0299デフォルトの名無しさん
2012/06/11(月) 22:07:21.61cdeclというプログラムがいいですよ
プログラミング言語C第2版にソースプログラムが載ってます
難しいのは演算子の優先順位がぱっと見にはわかりにくいからです
0300デフォルトの名無しさん
2012/06/11(月) 22:09:19.12ここからでも取れます
sourceforgeなのでウィルスの心配はないでしょう
0301デフォルトの名無しさん
2012/06/11(月) 22:13:56.88無駄に煩雑になってしまう型宣言の記述は
そもそもC言語の文法設計ミスとも言われている
「エキスパートCプログラミング」では、宣言のためだけに一章を割いてるw
0302デフォルトの名無しさん
2012/06/11(月) 22:14:33.09ありがとうございます
ちょうど手元にあるので読んでみます
0303デフォルトの名無しさん
2012/06/11(月) 22:15:33.45ぜひ買って読んでみようと思います
0305デフォルトの名無しさん
2012/06/11(月) 22:29:02.66頭の体操のために時々わざと複雑な宣言を文章で書いてそれをプログラムにしている(^^ゞ
とんでもないプログラムになって面白いです
0306デフォルトの名無しさん
2012/06/11(月) 22:42:49.810307デフォルトの名無しさん
2012/06/11(月) 22:58:46.950308デフォルトの名無しさん
2012/06/12(火) 00:22:28.680309デフォルトの名無しさん
2012/06/12(火) 00:33:22.610310デフォルトの名無しさん
2012/06/12(火) 02:39:53.47http://ikedanobuo.livedoor.biz/archives/51740658.html
きょうシアトルで、西和彦さんと一緒にビル・ゲイツにインタビューした。
彼は福島事故について驚くほどくわしく知っていて、
「合理的な日本人が非合理的な反応をしているのは残念だ」と言っていた。
特に原発や放射線のリスクについての科学的知識が政治家や一般国民に知られていないことが問題を必要以上に混乱させている、と語った。
印象的だったのは、中国がウェスティングハウスのAP1000を60基発注するという話だ。
中国は世界中からエンジニアを集め、国家プロジェクトとして原子力開発を進めている。
先月、第1号機が納品された。これは1基115万kWだから、合計6900万kW。
これだけで日本の原発の合計をはるかに上回る。設計はすべて同じだから、コストも非常に安い。
重要なのは安全性だが、AP1000のような第3世代の原子炉には、
炉心溶融を物理的に防ぐ受動的安全装置がついており、巨大地震が起きても大丈夫だ。
福島第一原発は古いマーク�Tで、30年前から技術者が危険だと警告していた。
日本も「脱原発か否か」といった不毛な論争ではなく、古い原発を新しい原発に代えて
安全性を高めることも必要ではないか。
エネルギー産業は、情報通信産業の次の大きなフロンティアだ。
古い地域独占の電力会社が残っているおかげで、イノベーションの余地は非常に大きい。
新興国は安くて効率的なエネルギーを求めている。環境問題を考えても、きわめて危険な
石炭を減らすために原子力は重要だ。風力エネルギーも有望だが、フィードインタリフは
イノベーションを殺してしまう。
大事なのは、かつての通信と同じく、電力を全面的に自由化して競争を促進することだ。
エネルギー産業でも、かつてマイクロソフトがIBMを倒したように、巨大な電力会社を倒す
ベンチャーが出てくる可能性がある。そのためには不合理な規制を徹底的に見直すことが必要だ。
アメリカにはシェールガスもクリーンコールも第4世代原子力技術もあり、イノベーターも多い。
足りないのは合理的な政府だけだ。
0311デフォルトの名無しさん
2012/06/12(火) 07:42:42.14一次元配列へのポインタを元に考えると二次元配列へのポインタも渡せるが
こんな書き方はせずに構造体にするか引数にしたり別の分かりやすい手段を取るな
0312デフォルトの名無しさん
2012/06/12(火) 07:52:03.52引数にしてみたが相変わらず分かりづらい
0313デフォルトの名無しさん
2012/06/12(火) 13:09:27.35→y = A ・→x
を関数matmulf( )内でyについて計算して
、yをメイン関数の配列の中に返したいのですが
どういう式の書き方をすると良いか教えてください。
配列xと二次元配列Aの値を使って配列yを計算したいです。
行列同士の計算は参考書にも載っているんですが、こちらはやり方が思いつかなくて。
初歩的な質問ですみません><
よろしくお願いしますm(_ _)m
0314デフォルトの名無しさん
2012/06/12(火) 13:18:15.970315デフォルトの名無しさん
2012/06/12(火) 13:28:48.56ttp://ideone.com/IvMzJ
行列とかベクトルとかよく分かんないけどこんな感じか
0316デフォルトの名無しさん
2012/06/12(火) 14:59:50.39Nの2乗を10個表示させたいんてすがどうしたらいいんですかね。
ちなみにstdio.hのみで、for文を使ってです
0317デフォルトの名無しさん
2012/06/12(火) 15:00:38.100318デフォルトの名無しさん
2012/06/12(火) 15:19:03.09ttp://ideone.com/81Pjz
0319デフォルトの名無しさん
2012/06/12(火) 18:34:48.28この関数プロトタイプ宣言解析してください
0320デフォルトの名無しさん
2012/06/12(火) 19:07:50.71/ ̄;;;´;;、;;;ヾ;;;, -──--、,!
. /'´|;;;;,、;;;;;;;;;;/ ,!
. /:.:.:.レ´:.ヾ;;;;;;i 断 だ ,!
/:.:.:.:.:.:.:.:.:.:.:ヾ;i る が ,!
. /:.;.イ:.:.:.:.:.:.:.:.:.:..ヽ ,!
. /レ' ;|:.:.:.:.:.:.:,:ィ:.:.:.:〉 __,.,!
/-、ヽ,:|:.:.:,/ /:.:.://.:,:ィ:.:.:.,!
/'ヽ、ヾi ゙´.: /__;:;:-'"´ ,;|:.:.:.,!
. /ゝ-`';:/ .:〈ニ=-=ニ二 ̄ヽレ',!
/::::;;;;;/ ' ,, ニ`ー-,、__\〉ィ,!
. /;:::::/ ::. ::.,,\_ゞ;'> 〈;,!
/i!:::::iヾ-'、::.. '';~ ,;:'/,!
. /;;;i!fi´l_、,.` .: ,;:' ,!
/;;;;;i' ('ー、ヽ ..: ,;:'' ,!
ヽ、jゝ、`ヾ:、゙、 ,..:'.:'" .: ,!
``ヽ.、_ ¨` ,:' (_r:,!
``ヽ.、.. ノr;ソ~,!
``ヾ、 / 7,!
``ヽ,!
0321デフォルトの名無しさん
2012/06/12(火) 20:25:48.12fprintf(fp, "%E\n", a);
とすると、1.970200E+03
fprintf(fp, "%f\n", a);
とすると、1970.199707
と精度が違っていて、
scanf(fp, "%E", &b); で 1.970200E+03 を読み取ると
bは%Eだと 1.970200E+03 ですが、 %f だと 1970.199951 になります。
%fだと精度が高いのはなぜですか?
あとこれだと、
fabsf(a - b) <= FLT_EPSILON * max(fabsf(a), fabsf(b))
がFALSEなので比較しても一致しません。
fprintfとfscanfでfloatの値を変えずに読み書きするにはどうしたらいいですか?
0322デフォルトの名無しさん
2012/06/12(火) 20:29:16.08float の7桁目以降は飾りなので気にしない
0323デフォルトの名無しさん
2012/06/12(火) 20:45:38.34float 型の精度(有効桁数)は2進数にして 24 (=23+1) 桁であり,10進数では約 7 桁となる.
0324デフォルトの名無しさん
2012/06/12(火) 20:50:22.86桁落ち
絶対値がほぼ等しい異符号の数値同士の加算後や、同符号でほぼ等しい数値同士の減算の後、正規化で有効数字が減少すること。
0325デフォルトの名無しさん
2012/06/12(火) 20:52:43.23それで a b は(だいたいほぼ)同じだとどうやって比較したらいいのですか?
0326デフォルトの名無しさん
2012/06/12(火) 21:13:33.97for (i=0;i<7;++i){
while (!(a/j||b/j))j/=10;
while (a/j<j*10||b/j<j*10)j*=10;
if ((a%=j)!=(b%=j))break; }
bool eq=i==7;
0327デフォルトの名無しさん
2012/06/12(火) 21:17:36.62#define FLOAT_EQ(x,v) (((v - EPSILON) < x) && (x <( v + EPSILON)))
桁落ちしないようこんなマクロ使うとか
0328デフォルトの名無しさん
2012/06/12(火) 21:24:41.62冗談はやめてください
FLT_EPSLION がなんか誤差の範囲みたいなやつでこれをどうにかすると
ズレてもいい範囲に変換でき、その結果が(a - b)の絶対値より大きければOKというような情報を得ていますが
インターネットを探しても間違った情報ばかりで意味が分かりません
>>327
そのEPSILONを x や v がどんな(正しい)floatの値の場合でも
正しく比較できるような範囲にするにはどうしたらいいですか?
その例だと EPSILON が 0.0001だから、1.0E-20くらい同士の比較だとほとんどOKになってしまいますよね?
0329デフォルトの名無しさん
2012/06/12(火) 22:16:20.52どうもありがとうございます<(_ _)>
0330デフォルトの名無しさん
2012/06/12(火) 22:40:53.35つ[double]
0331デフォルトの名無しさん
2012/06/12(火) 23:18:12.96それで何が解決するの
0332デフォルトの名無しさん
2012/06/12(火) 23:28:36.91どうしてもfscanfとかで扱いたいなら、とりあえず文字列で受けてからパースするなりすればいいんでないの
0333デフォルトの名無しさん
2012/06/12(火) 23:28:59.02全てが解決する魔法の呪文だ
0334デフォルトの名無しさん
2012/06/12(火) 23:31:17.77値の変化がfloatの仕様上許容できる範囲かをチェックしたいだけなんだけどそんなに難しいことなの?
%E の出力は同じだから同じ丸め方で一致するか比較できればいいだけで
%E の出力の桁数がC言語の仕様上7桁と決まっているのなら
絶対値の小さいほうの10の対数とってからEPSILONを求めればいいけど
そのへんを組み込みの定数から華麗に求められないの?という質問です
0335デフォルトの名無しさん
2012/06/12(火) 23:37:25.21ゼロ近傍は符号の関係で別途考慮する必要がある
0336デフォルトの名無しさん
2012/06/12(火) 23:37:45.61アホはクソして寝ろ
0337デフォルトの名無しさん
2012/06/12(火) 23:40:53.17いえいえ
0338デフォルトの名無しさん
2012/06/12(火) 23:52:02.33ふたつの値の差の絶対値が許容できる誤差の範囲であれば一致しているとみなしてよいと思ってて
その「許容できる誤差の範囲」を比較する値とFLT_EPSILONみたいな定数から求められればいいと思うんだけど
できないの
0339デフォルトの名無しさん
2012/06/13(水) 00:00:54.53いっそ原点に立ち返って桁落ち覚悟で2つの数値の差を求める
ただ、許容する誤差の範囲としてFLT_EPSILONはあまりにも小さすぎる
ttp://ja.wikipedia.org/wiki/%E9%9D%9E%E6%AD%A3%E8%A6%8F%E5%8C%96%E6%95%B0
非正規化数の考慮や、ある程度の丸めによってゼロになれば一致と見なせないかな
0340デフォルトの名無しさん
2012/06/13(水) 00:28:49.65でいい(Nは16くらい)
というようなのがチラホラあるんだけど、こいつら全員間違っているんでしょうか
float の7桁め以降は飾りなので気にしない。(再掲)
別に精度が悪くなっている/よくなっているわけではない。単に10進表示したときにどこで丸めるか、だけの話で、%f は下々の桁まで展開しちまっているのでは?
>>340
妥当にみえるのですけれども。
0342デフォルトの名無しさん
2012/06/13(水) 02:19:52.260343デフォルトの名無しさん
2012/06/13(水) 02:31:20.01atan2(imag, real)
絶対値は
sqrt(real * real + imag * imag)
0344デフォルトの名無しさん
2012/06/13(水) 04:03:11.530345デフォルトの名無しさん
2012/06/13(水) 04:23:35.28>>343をそのままプログラムにしてみた
#include <stdio.h>
#include <math.h>
int main(void)
{
double real, imag;
printf("複素数の実部を入力してください : ");
scanf("%lf", &real);
printf("複素数の虚部を入力してください : ");
scanf("%lf", &imag);
printf("入力された複素数は(%f, %fi)\n", real, imag);
printf("偏角(φ) = %f rad\n", atan2(imag, real));
printf("絶対値 = %f\n", sqrt(real * real + imag * imag));
return 0;
}
0346デフォルトの名無しさん
2012/06/13(水) 10:17:35.54妥当に見える理由はなんでしょう
a b の絶対値を掛けるのは、FLT_EPSILONが1.0を基準にしたものだからスケーリングするためで
16というのは4bit分は余分な精度っぽいので捨てろという意味でよいですか?
そもそも計算誤差ではなく、scanf %E で読みこんだときに
書かれていた値以上の精度の桁が勝手についてるのが悪いのですが
それによってズレる範囲がFLT_EPSILONから求める値、
つまり計算の誤差の範囲と同じくらい、ということにしてもいいの?
0347デフォルトの名無しさん
2012/06/13(水) 10:52:14.3010進小数の2進数への直し方とエプシロンの意味分かる?
0348デフォルトの名無しさん
2012/06/13(水) 11:07:24.16浮動小数点数で2進10進間の変換をしたら循環小数になる場合がある
情報を失いたくないならバイナリで書きましょう
printfにfloatは渡せないよ、doubleに変換される
可変引数だから
0349デフォルトの名無しさん
2012/06/13(水) 11:31:48.080350デフォルトの名無しさん
2012/06/13(水) 12:27:48.75>書かれていた値以上の精度の桁が勝手についてるのが悪いのですが
これが間違い。勝手についてくるのではない。精度に関しては float 4バイトの内容以上でも以下でもない。
10進法表示としたときに、どの桁まで展開されるかによって、一見表現が違うようにみえるだけなのです。
float の7桁め以降は飾りなので気にしない。(再々掲載)
0352デフォルトの名無しさん
2012/06/13(水) 13:29:45.90float f=1970.199707;
ってすると、fの値は1970.199707であってそれ以外ではない!
と思ってることでしょ
でもprintf("%.8f",f)とやれば分かるように、そうじゃない。
精度を指定しない%fが6桁という仕様からくる錯覚…
0353デフォルトの名無しさん
2012/06/13(水) 13:49:30.42ttp://ideone.com/xxafU
ttp://codepad.org/Y50sv6FI
実際にビット列を見た方が早いんじゃないかと思ったが手持ちの環境ではa,bに差異がない
VC++ 2010 Express での結果
0 10001001 11101100100011001100110
1.970200E+003
1970.199951
0 10001001 11101100100011001100110
1.970200E+003
1970.199951
0354デフォルトの名無しさん
2012/06/13(水) 14:09:56.502進の世界では1/10するには1/2^nのシグマをとって限りなく0.1に近づけるのですよね
0355デフォルトの名無しさん
2012/06/13(水) 14:20:14.680356デフォルトの名無しさん
2012/06/13(水) 15:42:40.670357デフォルトの名無しさん
2012/06/13(水) 15:45:42.10ttp://ideone.com/rU6G9
0358デフォルトの名無しさん
2012/06/13(水) 16:35:12.46これらの関数を引数no 0-99に応じて読み出す関数
long readset(int no){}があったとすると、readsetの中身
の処理をどのように作るのがいいでしょうか?
switch caseで分岐すると処理が長くなりすぎるし、関数ポインタ
の配列にしようにも0-99関数の戻り値がばらばらなのでうまくいかないし。
0から99までの関数の戻り値はlongが最大なので、intで足りる関数も一
番大きいサイズの関数に合わせて戻り値longで作れば関数ポインタ配列で
割とスッキリ作れますが、そういうのってありですかね。
0359デフォルトの名無しさん
2012/06/13(水) 16:49:02.56個別関数は戻りを long にするな。
たまたま値域が最大で long にまとまるってだけで
あるときは 座標値を意味してたり、あるときは関数の成否を意味してたり とばらばらだったら
まとめようとは思わない
0360デフォルトの名無しさん
2012/06/13(水) 16:58:44.86戻り値の代わりにretに書き込む。
0361デフォルトの名無しさん
2012/06/13(水) 17:01:00.80その関係で戻り値がlongになってます。
0-99の100個の個別関数は意味はばらばらですが、なにかしらの
設定値です。関数の成否を表すようなことには使っていません。
0362デフォルトの名無しさん
2012/06/13(水) 17:02:32.78この状態です
a を %E で出力した後その値を %E でbに読むと値が変わっているけども
その差が許容される範囲であるのなら a と b は一致している判定したいだけ
>>351
10進数で7桁目というのはC言語の仕様上決まっていて決め打ちしてもいい値ですか?
0363デフォルトの名無しさん
2012/06/13(水) 17:30:55.44Cの仕様の範囲内ではないが、IEEE754がデファクトスタンダード
正規化数しか考えないならその制度は10進でlog(2^24) = 7.2247199桁
非正規化数も考えるならlog(2^23) = 6.9236899桁
>その差が許容される範囲であるのなら a と b は一致している判定したいだけ
そうすりゃいい
あなたが許容する範囲もあなたが自由に決めていい
0364デフォルトの名無しさん
2012/06/13(水) 17:32:34.50結局のところ>>327のように状況に応じた適当な精度でイコール判定するのが手っ取り早い
0365デフォルトの名無しさん
2012/06/13(水) 18:09:13.20ttp://ideone.com/TU8G2
%Eによる指数表記の精度はfloatよりも悪いので
このように%.8Eのように精度を上げればあるいは
0366デフォルトの名無しさん
2012/06/13(水) 18:19:07.29要するにこう
0367デフォルトの名無しさん
2012/06/13(水) 18:51:13.79この質問に立ち返ると
>%fだと精度が高いのはなぜですか?
%Eの有効桁数は6桁。%fの有効桁数は小数点以下6桁
つまり整数部分があると%fの有効桁数は増える(それでもfloatの有効桁数7桁どまりだが)
>fprintfとfscanfでfloatの値を変えずに読み書きするにはどうしたらいいですか?
%.8Eなど精度を上げるか、いっそのこと4バイト配列と見なして16進文字列に変換してしまえば精度は維持できる
ttp://ideone.com/QK45N
人間の目で分かりづらいのであれば%.8Eなどを併記しておき、読み込む際は無視する
0368デフォルトの名無しさん
2012/06/13(水) 18:58:16.60誤差の範囲は7桁より下と言いたかった人ではないの
>>363
状況に応じたというのは a の b の値に応じた汎用的なチェックはC言語の範囲では書けないという意味ですか
汎用的にfloatの値を保存して読み出したいだけなので値の範囲は float の範囲が全部あります
>>365
%Eのフォーマットが7桁って何かの規格によるものでしょうか
記憶違いかもしれないけどVC++の%Eは8桁だった気がする
0369デフォルトの名無しさん
2012/06/13(水) 19:02:44.63ttp://ideone.com/qY71e
もっとシンプルにするとこうなる
>>368
>状況に応じたというのは a の b の値に応じた汎用的なチェックはC言語の範囲では書けないという意味ですか
汎用的なイコール判定は自分には思いつかない
0370デフォルトの名無しさん
2012/06/13(水) 19:14:32.38clで確認したら7桁でした
ideoneの人が一番分かってそうでしたが
結局誰も答えられないということか
0371デフォルトの名無しさん
2012/06/13(水) 19:56:16.15ttp://ideone.com/95cHD
きっちり精度を求めようと思ったら論文レベルになる
0372デフォルトの名無しさん
2012/06/13(水) 22:14:07.05絶対値の大きさに依存できないんですよね
指数部は動き回るわけで
10進数7桁でいいなら
if (fabsf(a - b) < 1.0e-7f * powf(10.0f, floorf(logf(min(fabsf(a), fabsf(b)))/logf(10.0f)))) {
// ok
}
みたいな式でもいい気がするのですが
0373デフォルトの名無しさん
2012/06/14(木) 07:29:56.83別にいいけど、そのこだわりには普通は意味がない。
普通は、だいたいどういう大きさの数値を扱っているかわかってるから
>>371 ぐらいの方法でいい。
やりたいことは誤差を無視して比較する、ってことなはずだけど
まず、10進7桁の精度は絶対ではない。みんな2進数だって言ってるでしょ。
それに途中で演算しているなら、どんどん誤差はたまっていく。
いつまでも 10進7桁の精度が有効とは限らない。
0374デフォルトの名無しさん
2012/06/14(木) 08:46:24.21テキストベースで汎用的なfloatの送受信処理が書きたいので数値の大きさは想定できないです
絶対値の大きさはFLT_MAXからFLT_MINまであります
演算による誤差の話はここでは問題にしていません
で、もちろん、floatのサイズなんかの話もあるし正確に移動したいわけではなく
%Eで表現できる範囲でよくて、極端に言えばsprintf %Eで文字列比較して一致していればよくて
それはつまり仮数部10進数7桁目までが一致していればよくねと思い始めていますが
これも難しいですか?
0375デフォルトの名無しさん
2012/06/14(木) 08:49:48.77>%Eで表現できる範囲でよくて、極端に言えばsprintf %Eで文字列比較して一致していればよくて
じゃあそれでいいじゃん
0376デフォルトの名無しさん
2012/06/14(木) 09:54:06.96っていう配列があったとして
long op(void)
{
return (long)test[3];
}
とキャストした場合戻り値って0x01020304でなく0x00000004に
なりますよね。
これって新たに4byteどこかに確保され0x00000004で上書きされ
てるってことですよね?
0377デフォルトの名無しさん
2012/06/14(木) 09:58:19.22そうだよ
戻り値用のスタックの4バイトに0x00000004が格納される
0378デフォルトの名無しさん
2012/06/14(木) 10:02:32.350379デフォルトの名無しさん
2012/06/14(木) 10:10:31.80末尾の N+1 ビットが違っていても許容する判定は
int32_t ia = *(int32_t*)&a;
int32_t ib = *(int32_t*)&b;
if(ia < 0) ia = -(ia ^ (int32_t)(0x80000000));
if(ib < 0) ib = -(ib ^ (int32_t)(0x80000000));
if(abs(ia - ib) < (1 << N)){ /* OK */ }
ただし IEEE 限定
それが嫌なら nextafter とか使えばいいよ
0380デフォルトの名無しさん
2012/06/14(木) 10:26:37.88test[3]が0x01020304なワケがない
キャストに関係なく
0381デフォルトの名無しさん
2012/06/14(木) 10:57:16.770382デフォルトの名無しさん
2012/06/14(木) 11:01:54.61正解は無いし分かってやるなら別に>>372でもsprintfでもいいんじゃね
参考
http://c-faq.com/fp/fpequal.html
0383デフォルトの名無しさん
2012/06/14(木) 19:18:40.71使っているソフトはVS2010です
0384デフォルトの名無しさん
2012/06/14(木) 19:33:37.710385デフォルトの名無しさん
2012/06/14(木) 19:49:21.820386デフォルトの名無しさん
2012/06/14(木) 19:53:21.05if(fp_i ==NULL) {
fprintf(stderr,"Input File cannot open\n");
exit(8);
の部分で 関数exitが定義されていません と警告がでました。
}
ヘッダファイル等をインクルードする必要があるのでしょうか?
0387デフォルトの名無しさん
2012/06/14(木) 19:57:07.800388デフォルトの名無しさん
2012/06/14(木) 20:01:23.61exitを選択してF1キーでヘルプを調べて必要なヘッダファイルをインクルードしる
0389デフォルトの名無しさん
2012/06/14(木) 21:00:16.570390デフォルトの名無しさん
2012/06/14(木) 21:03:56.57あるいはその会社から抜け出したい時
0391デフォルトの名無しさん
2012/06/14(木) 21:24:47.41なれると、どういうときに使えるのか、わかってくるよ
0392デフォルトの名無しさん
2012/06/14(木) 21:29:32.53ここは試験に出るから覚えておくように
0393デフォルトの名無しさん
2012/06/14(木) 21:32:19.870394デフォルトの名無しさん
2012/06/14(木) 21:33:56.21でもフラグ使うとソースが読みづらくなるお・・・
そうだ、gotoで一気に抜けよう!
エラー処理でmallocした領域を解放したいお・・・
でもいちいち解放してたら大変だお・・・
そうだ、gotoで関数の最後に飛ぼう!
少なくとも前の方に飛ぶ事はないな
0395デフォルトの名無しさん
2012/06/14(木) 21:36:33.090396デフォルトの名無しさん
2012/06/14(木) 22:36:10.42実行時にフリーズになってしまうんだけど、どうしたらいいんでしょう?
0397デフォルトの名無しさん
2012/06/14(木) 22:37:36.160398デフォルトの名無しさん
2012/06/14(木) 22:50:34.96末尾再帰最適化
0399デフォルトの名無しさん
2012/06/14(木) 23:25:50.030400デフォルトの名無しさん
2012/06/15(金) 07:27:17.98system("");
を使いたいなら
#include <stdlib.h>
を書かなければならない
0401デフォルトの名無しさん
2012/06/15(金) 09:47:55.97嘘乙。このスレ的には必要はない。
しかも、問題になっているのはsystemじゃない。
0402デフォルトの名無しさん
2012/06/15(金) 09:50:11.44>>388
それはc++としてコンパイルしているから。cならエラーにならん。
# インクルードしておいた方がいいことには違いないが。
0403デフォルトの名無しさん
2012/06/15(金) 10:04:22.97解決したらお礼を言えよクズ
0404デフォルトの名無しさん
2012/06/15(金) 10:46:30.570405デフォルトの名無しさん
2012/06/15(金) 11:37:31.980406デフォルトの名無しさん
2012/06/15(金) 11:47:12.770407デフォルトの名無しさん
2012/06/15(金) 12:17:27.920408デフォルトの名無しさん
2012/06/16(土) 01:47:29.36応答したい奴がすれば良いんじゃね?
0409デフォルトの名無しさん
2012/06/16(土) 07:52:54.55質問者がトリつけりゃあいいだろ
そこまで頭が回らないなら
C言語以前だ
小学中学から人生の勉強やり直した方が
ソイツのためだろ
0410デフォルトの名無しさん
2012/06/16(土) 08:45:31.36判断付かねぇよ
0411デフォルトの名無しさん
2012/06/16(土) 12:26:58.300412デフォルトの名無しさん
2012/06/16(土) 19:34:17.53http://m.ruvr.ru/data/2012/06/16/1295821940/4RIA-618757-Preview.jpg
米食品医薬品局(FDA)は、健康に害を及ぼす可能性があるとして米国市場に韓国製海産物製品を入れないよう求めた。
14日ロイター通信が伝えたところでは、韓国製の海産物の中にヒトの糞便の痕跡が見つかり、この事は、胃腸の病気を
引き起こすノロウイルスが食べ物の中に存在する可能性を意味する、との事だ。
問題となっているのは、韓国製のカキ、ホタテなどの貝類やイクラなどで、生のものも又、缶詰入りのもの、さらには別の
方法で加工された製品も含まれている。
ロイター通信によれば、今のところ駐米韓国大使館からは、何のコメントも出されていない。
http://japanese.ruvr.ru/2012_06_16/78294694/
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
韓国製の海産物の中にヒトの糞便の痕跡が見つかり
0413デフォルトの名無しさん
2012/06/17(日) 02:01:26.59スレチだし、韓国では普通のコト。
一々書き込むなよ。
0414デフォルトの名無しさん
2012/06/17(日) 09:40:08.67逆だね
初心者ほど何でもありで
やりたい放題やっておいたほうがいい
分岐命令そのものの否定という間違った理解こそ有害だ
やりたい放題、というほどやらない人が大半だから(私もここでやりたい放題やることができるようになった口だし)、最初に制限をかましておくことも時には必要で、goto はそれにあたるのでは?
0416デフォルトの名無しさん
2012/06/17(日) 16:08:43.53低脳がやりたい放題やってもやっぱり低脳ですね(笑)
0417デフォルトの名無しさん
2012/06/17(日) 18:47:11.50そりゃいつまでたっても成長せんさ。
0418デフォルトの名無しさん
2012/06/17(日) 20:49:28.29難読化するような使い方してるの見たことあるけど、何作ってるのってかんじだったなあ、BASICの考え方をそのまま持って来ましたって...
0419デフォルトの名無しさん
2012/06/17(日) 20:53:51.92「なんでC言語とかいうアホは、BASICのようにキチンとgotoが使えないんだ」
と
0420デフォルトの名無しさん
2012/06/17(日) 21:57:15.05ベーマガのDr.Dとか
0421デフォルトの名無しさん
2012/06/17(日) 22:10:12.33| |
| ._,,..-..,,,__ ○ .|
| |:::::::: ニ=.T _______. .|
| |:::::::: ニニ ト、 _,.-个:::::::| |
|___ .|:::::::: ニニ |叫 |.=ニレ-'个ー‐-|
|.  ̄\:. ニニ.|叫 ̄ ̄ ̄~T=ニ|::|`'ー.,_ .|
|-ー‐''''个.ニニ.レ'´√ ̄ ̄'个-.,|::| 叫 `'ー|
|. ニ= |::_,.-'´ / _ ';_ ``|., .|
| _,.ト'´ / /入ヽ `;_ \ |
| / / ヽ∵フ `;_ \, |
|_/ / √ |Y| `'i `;_ \_|
| / | |.|.| .| `;_ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
んー、NGワードに登録しないでくれているんだ、ありがとうです。
0423デフォルトの名無しさん
2012/06/17(日) 23:53:14.39「ローカル変数またはテンポラリのアドレスを返します。」と出てきます。
動的に確保されたメモリ領域が解放されるのにそのポインタを返すのはおかしいという解釈でよろしいのでしょうか。
だとすれば何故localtime関数は構造体へのポインタを返す事ができ、それをmainからアクセス出来るのでしょうか
よろしくお願いします。
0424デフォルトの名無しさん
2012/06/18(月) 00:01:37.21localtimeは、static変数のアドレスを返している。
(処理系によっては、スレッドローカルな変数を使っている)
0426デフォルトの名無しさん
2012/06/18(月) 05:48:31.710427デフォルトの名無しさん
2012/06/18(月) 16:26:09.380428デフォルトの名無しさん
2012/06/18(月) 18:36:25.47http://engawa.2ch.net/test/read.cgi/poverty/1339929120/
米食品医薬品局(FDA)は、健康に害を及ぼす可能性があるとして米国市場に
韓国製海産物製品を入れないよう求めた。
14日ロイター通信が伝えたところでは、韓国製の海産物の中にヒトの糞便の痕跡が見つかり、この事は、
胃腸の病気を引き起こすノロウイルスが食べ物の中に存在する可能性を意味する、との事だ。
問題となっているのは、韓国製のカキ、ホタテなどの貝類やイクラなどで、生のものも又、
缶詰入りのもの、さらには別の方法で加工された製品も含まれている。
ロイター通信によれば、今のところ駐米韓国大使館からは、何のコメントも出されていない。
ソース
http://japanese.ruvr.ru/2012_06_16/78294694/
画像
http://m.ruvr.ru/data/2012/06/16/1295821940/4RIA-618757-Preview.jpg
0429デフォルトの名無しさん
2012/06/18(月) 18:42:21.68ガチで就職がやばいんで、さっさと小企業に就職しますわ。
プログラミングは絶対趣味にすべき。
0430デフォルトの名無しさん
2012/06/18(月) 18:46:29.58ゴミクズ寸前?だったストックオプションを切り抜けて
優雅な引退生活を送ってる ように見える
ついでにハクもついた
結局は、入る企業とヌける時期による
0431デフォルトの名無しさん
2012/06/18(月) 20:03:08.910432デフォルトの名無しさん
2012/06/18(月) 20:09:51.71都市伝説でいるのか不思議。
0433デフォルトの名無しさん
2012/06/18(月) 20:15:14.18やるこたぁKBDでパチパチ打ち込んでるだけだからな。
その動きじたいがスゴイ!……ってな話でもないし
ヘタなヤツも動き自体はプロと同じだろうし。
それにTVで放映されるような種類の職でもなし、
UMA認定されるのも当然だろう
0434デフォルトの名無しさん
2012/06/18(月) 20:17:47.890435デフォルトの名無しさん
2012/06/18(月) 20:17:50.36お前国立大卒?
さっさと答えろよ
0436デフォルトの名無しさん
2012/06/18(月) 20:23:05.24すげぇのはいる。
一体どこいらがすごいのかが分からないくらいに凄いと言われてんのが。
もちろんソイツは情報課
0437デフォルトの名無しさん
2012/06/18(月) 20:25:47.30質問に答えろよおっさん。
0438デフォルトの名無しさん
2012/06/18(月) 20:32:03.09しつもん てどれ?
0439デフォルトの名無しさん
2012/06/18(月) 20:32:11.960440デフォルトの名無しさん
2012/06/18(月) 23:58:09.06テキストファイルにランダムな数値を出力するプログラムを作ったところ、通常通り出力されました。
http://codepad.org/8xXI3kgO
しかし、これをクイックソートでソーティングしてから出力するプログラムに変更したところ、ファイルが出力されなくなってしまいました。
http://codepad.org/5UZIz01p
実行しても、ファイルの生成自体行われません。開発環境はVisualStudioを使っています。なぜこのような事が起こるのでしょうか
0441デフォルトの名無しさん
2012/06/19(火) 00:31:05.99ファイルが変なフォルダにできてる気が
0442デフォルトの名無しさん
2012/06/19(火) 00:38:39.220443440
2012/06/19(火) 00:42:06.25ご返答ありがとうございます。
実行してファイルを検索してみたところ、残念ながら一致するファイルは見つかりませんでした。
このようなプログラムを書くとファイルがおかしな(いつもと違う)場所にできてしまうことが多い、ということでしょうか
0444440
2012/06/19(火) 00:46:46.21ご返答ありがとうございます。
データ数を50に変更してみたところ、同じようにファイルは出力されないままでした。
また、データを二分探索で探せるように先ほどのプログラムを拡張した(クイックソートはそのまま)ところ、正しく結果が出力されるようになりました。
クイックソートだけを記述している場合のほうがスタックオーバーフローを起こしやすいということでしょうか。
レスを分けてしまい申し訳ありません。
0445デフォルトの名無しさん
2012/06/19(火) 00:50:49.17Visual Studio ならデバッガで実行してみればいい。
ツール→デバッグ開始
それでエラーにならなかったら
ファイルはどこかにできてる。
0446デフォルトの名無しさん
2012/06/19(火) 01:06:55.77とりあえずgccでは特に問題なく動いているみたいだけど。
0447440
2012/06/19(火) 01:35:06.51皆さんご返答ありがとうございます。やはり私の実行の仕方がまずかったのでしょうか。
他の方法でも実行してみようと思います
0448uy
2012/06/19(火) 02:30:09.94問題の箇所は
int main ( void ){
int data[N_DATA];
↑
の これ
main内で宣言したAuto変数はmain関数に割り当てられたスタックを使ってる
それを超えるとスタックがぶっ壊れる
mainで使えるスタックのサイズはコンパイラごとに違うはず
50にしてファイルが出力されないっていうのはおかしいから何かのミスだろ
とりあえずint data[N_DATA];
をメイン関数の外において実行
もし変な環境でやってるなら
"data.txt" を "./data.txt" しないとダメな場合もあるかもしれない
0449デフォルトの名無しさん
2012/06/19(火) 04:33:46.48swap ( data, 0, rand() % n ); は何のため?
0450uy
2012/06/19(火) 04:41:52.260451デフォルトの名無しさん
2012/06/19(火) 09:00:14.76だから最初にこう聞くべきだった。
「エラーメッセージはないの?」と。
0452デフォルトの名無しさん
2012/06/19(火) 10:06:30.400453片山博文MZボット ◆0lBZNi.Q7evd
2012/06/19(火) 16:27:22.49無限に再帰してスタックオーバーフローになっているのでしょう。
これでも読んで勉強してください。
http://www1.cts.ne.jp/~clab/hsample/Sort/Sort9.html
0454uy
2012/06/19(火) 23:35:26.950455デフォルトの名無しさん
2012/06/19(火) 23:46:49.95アプリケーションで1括りや スレッド単位で って環境は知ってるけど
0456デフォルトの名無しさん
2012/06/20(水) 00:16:56.800457デフォルトの名無しさん
2012/06/20(水) 00:50:19.000458デフォルトの名無しさん
2012/06/20(水) 01:25:11.12やっぱり配列が大きすぎてスタックオーバーフローを起こしてるな
スタックを多目に取るかmalloc/newするか
0459デフォルトの名無しさん
2012/06/20(水) 01:28:58.280460uy
2012/06/20(水) 02:10:25.58C言語なら俺に聞けスレにいる奴ってこんなレベルなの?死ね
#include <stdio.h>
void main(){
int a[100000000];
printf("a\n");
}
これ実行してみろゴミカス
aは表示されない
aが表示された場合には10000000を適当に数値変えてみろ初心者死ね
http://ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC
Wikipediaにすら書かれてるwwwwwwwwwwwwwwwww
ググることすら出来ないのか
0461デフォルトの名無しさん
2012/06/20(水) 02:19:43.350462デフォルトの名無しさん
2012/06/20(水) 02:28:22.320463デフォルトの名無しさん
2012/06/20(水) 02:30:58.120464デフォルトの名無しさん
2012/06/20(水) 02:39:04.700465デフォルトの名無しさん
2012/06/20(水) 03:34:30.400466デフォルトの名無しさん
2012/06/20(水) 03:56:36.130467デフォルトの名無しさん
2012/06/20(水) 04:19:22.960468デフォルトの名無しさん
2012/06/20(水) 07:14:26.76されちゃったんだよな(ページングを使用)
セグメントモデル使ってればスタック可変に出来たのに(Unix、Linuxの floating stack model
はそうなっている)
よほど8086時代のセグメントが嫌だったのか
しかし確かにスタック可変というのは良くないっちゃあ良くない点もあるからこれでいいのかも
0469デフォルトの名無しさん
2012/06/20(水) 07:44:02.380470デフォルトの名無しさん
2012/06/20(水) 08:03:01.35ファイルは出来るし、再帰レベルは2桁(100未満)だから、スタックオーバーフローの可能性は低い。
>>440 かもな。
0471デフォルトの名無しさん
2012/06/20(水) 10:51:12.72そら院行かずに就職したほうがいいわ
0472デフォルトの名無しさん
2012/06/20(水) 11:04:33.61{
int i;
以下省略
この(void)ってなんですか?
あとプロトタイプ宣言ってなんですか?
0473デフォルトの名無しさん
2012/06/20(水) 11:23:45.33あなたがCをどこまで知っているかによって説明の仕方が変わります。
・(void)
(void)じゃなくて()なら判りますか?
・プロトタイプ宣言
関数の宣言のうち、引き数リストを明示したものを指します。
0474デフォルトの名無しさん
2012/06/20(水) 11:54:27.980475デフォルトの名無しさん
2012/06/20(水) 12:31:22.42があって、誤って作成したんですが変更するにはどうすればいいですか?
0476デフォルトの名無しさん
2012/06/20(水) 12:51:28.48新しく作り直せばいい
できたものを比較すれば何が違うのかわかるよ
0477デフォルトの名無しさん
2012/06/20(水) 12:51:48.190478デフォルトの名無しさん
2012/06/20(水) 14:02:00.450479デフォルトの名無しさん
2012/06/20(水) 16:42:18.280480デフォルトの名無しさん
2012/06/20(水) 16:57:47.480481デフォルトの名無しさん
2012/06/20(水) 16:58:47.49おまえ頭いいなぁ・・・気付かんかったw
で、プログラムの使い方はどこで聞けばいい?
0482デフォルトの名無しさん
2012/06/20(水) 17:05:49.93Visual Studio の事なら Visual Studio スレで訊けばいいんじゃね
0483デフォルトの名無しさん
2012/06/20(水) 17:30:09.39>で、プログラムの使い方はどこで聞けばいい?
ソフト板だろ。JK
0484デフォルトの名無しさん
2012/06/20(水) 18:18:56.71日本でのK-POPブームに陰りが見え始めたとも指摘される昨今だが、それでも新たなグループが続々と日本進出している。
今年に入ってからだけでも日韓同時デビューのA-JAX、吉本興業系のレーベルから日本デビューするMYNAME(マイネーム)、
さらには「K-POP最後の大物」との触れ込みで7月にデビュー予定のWonder Girls(ワンダーガールズ)など、相変わらずの
「雨後のたけのこ」状態。それほどまでに日本市場はK-POPにとってオイシイのか、そして本当にK-POPは日本で売れてい
るのか。その実態を探ってみた。
大垣共立銀行(岐阜)系列のシンクタンクである共立総合研究所による「韓流消費に関するアンケート」の調査結果に、
実に興味深い調査結果がレポートされている。なんと、アンケートに回答した主婦の7割が「韓流は好きではない」との結果だったのだ。
同研究所は<K-POPの台頭、食品、コスメをはじめとする韓国製商品ブームのマスコミでの取り上げ方、新聞の テレビ欄における
韓国ドラマの占有状況からかなりの盛り上がりを予想したが、結果は予想を下回るものであった>と、調査レポートを結んでいる。
結局、K-POPブームとは単にKARAと少女時代という個別グループのブレイクにすぎず、やはり実体などなかったということか。
http://uramono.org/entertainment/2576.html
0485デフォルトの名無しさん
2012/06/20(水) 20:38:34.42446だけどVC++2010expressでも試してみたけど、
普通に実行できたよ。
hogeソリューションを作成したけど
\hoge\hoge\data.txt
にできてた。今ひとつファイルが置かれた場所は腑に落ちないが、
参考までに。exeファイルと同じフォルダにできると思ったのだが、、、。
0486デフォルトの名無しさん
2012/06/20(水) 21:42:21.240487デフォルトの名無しさん
2012/06/20(水) 21:46:33.300488デフォルトの名無しさん
2012/06/20(水) 21:47:44.710489デフォルトの名無しさん
2012/06/20(水) 21:59:20.770490デフォルトの名無しさん
2012/06/20(水) 22:05:38.830491デフォルトの名無しさん
2012/06/20(水) 22:23:33.74ウェブサイトから広告を削除した。
ソウル・ナイロビ間の便を近日就航する予定の大韓航空は、そのPR広告で「大韓航空で飛び、アフリカの大いなるサバンナ、
サファリツアー、そして原始的エネルギーに満ちた先住民たちを楽しみましょう」と表現した。
あるケニア人はこうツイートしている。
「私の #原始的エネルギーを処理するために今日はライオン狩りとゾウいじめをしようと思う」
別のケニア人はこうツイートした。
「私は毎朝起床するために #原始的エネルギー を使っています」
数百件のツイートが集まったことを受け、大韓航空は、「ナイロビ便の最近の広告についてしかるべき確認を行っています。
この状況に対して心から謝罪いたします」と発表した。
以下省略
http://www.afpbb.com/article/economy/2885046/9141540
0492デフォルトの名無しさん
2012/06/20(水) 23:29:19.870493デフォルトの名無しさん
2012/06/20(水) 23:47:36.51起動時のカレントディレクトリは起動したアプリによって決定される。
エクスプローラからならプロパティで変えられるし、VisualStudioでは便宜上ソリューション配下のバイナリ置き場の上になっている。
0494デフォルトの名無しさん
2012/06/21(木) 01:22:26.44Windowsだとデフォルトは1MBで、リンカのオプションで変更も可
http://msdn.microsoft.com/ja-jp/library/tdkhxaks(v=vs.100).aspx
0495uy
2012/06/21(木) 05:53:45.26よく覚えとけ
自身のプロセスに割り当てられたスタックより上を使ったとしても
そこのメモリを誰も使っていなければスタックオーバーフローしてても普通に動く
メモリ配置が変われば動かなくなる事もある
そんなゴミカス言語でITは作られてる
動的言語とか、動的言語の問題点とか
ソースコードかいているうちに目に見えないバグとポインタの使用によって脆弱性だらけになっていくC言語に比べたら
メモリ管理だけはしっかりされているだけよっぽどマシだ
0496デフォルトの名無しさん
2012/06/21(木) 08:34:03.09せめてスタックオーバーフローとは何か、調べてから書けよ。
0497デフォルトの名無しさん
2012/06/21(木) 08:38:56.870498デフォルトの名無しさん
2012/06/21(木) 08:41:11.670499デフォルトの名無しさん
2012/06/21(木) 08:42:13.22特にローカル変数で1MB超えるようなメモリ使っちゃうようなおバカさんはね
0500デフォルトの名無しさん
2012/06/21(木) 09:20:39.290501デフォルトの名無しさん
2012/06/21(木) 09:56:21.90・スタックオーバーランとバッファオーバーランは同じだと思っている
・ローカル変数を沢山使うと確保により時間が掛かると思っている
・関数を呼ぶと必ずスタックを消費すると思っている
・自分を卑下しつつもエリートであると矛盾したことを言ってしまう
0502デフォルトの名無しさん
2012/06/21(木) 09:58:57.68こりゃアフィにも広まるし
完全に日テレはネットに嫌われるね
■モ娘(狼)
日テレ韓国マンセーで遂にGP帯オール一桁wwwwwwwwww
http://hayabusa3.2ch.net/test/read.cgi/morningcoffee/1335226115/
■ニュー速(嫌儲)
最近フジより韓流ゴリ押しの酷い日テレ GP帯(19〜23時)視聴率オール一桁達成
http://engawa.2ch.net/test/read.cgi/poverty/1335228771/
【フジ・日テレ死亡】テレビ朝日視聴率3冠おめでとうございます
http://engawa.2ch.net/test/read.cgi/poverty/1340233396/
■ニュース速報
【第二のフジテレビ】日テレ、韓流ゴリ押しで大爆死
http://engawa.2ch.net/test/read.cgi/news/1335230981/
■なんでも実況J
【朗報】韓流ゴリ押しの日テレが低視聴率
http://hayabusa.2ch.net/test/read.cgi/livejupiter/1335229538/
0504uy
2012/06/21(木) 15:40:24.12再帰するごとに関数のリターンアドレスがちゃんとスタックに詰まれていく
main関数も例外じゃない
>>501
バカじゃねえの?
インライン展開でもしてない限り関数呼んだ時点でスタック使ってるから
まずはお前らは
void main(){
int a[1];
printf("%d \n" , a[1]);
printf("%d \n" , a[2]);
printf("%d \n" , a[3]);
}
ここら辺にはいってるデータがなんなのかを知れゴミクズ
0505uy
2012/06/21(木) 15:41:02.09二度と話かけんなよ
0506uy
2012/06/21(木) 15:44:13.48> ・スタックオーバーランとバッファオーバーランは同じだと思っている
はああっアアアアあああああああ???????????wwwwww
どんな俺様実装ですか??
スタックも所詮、割り当てられたバッファに過ぎない
バッファオーバーランが スタックオーバーランなんだよ
> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
それだけpush命令行われてるのにバカじゃねえの??????
> ・関数を呼ぶと必ずスタックを消費すると思っている
>>504これみてもわからないなら死んだほうがいいと思うwwwwwwwww
> ・自分を卑下しつつもエリートであると矛盾したことを言ってしまう
偽と本物の区別も付かないゴミカスってまだいたんだ
0507デフォルトの名無しさん
2012/06/21(木) 16:04:35.85どんなゲームがいいんだろう?
知識はprintf,scanfとか、for,while,とかまだ触りだけしかしてないけど
参考書なりぐーぐる先生なりに聞いて独学でやるつもり。
できることならクオリティ高いゲーム作りたいけど
はじめから高望みもいけないのでお手軽なものを教えていただきたい
C/C++以外の言語がオススメっていうのもあればお願いします
0508デフォルトの名無しさん
2012/06/21(木) 16:36:48.41ローカル変数を沢山使ったからと言ってpushが使われるとは限らない。
スタックポインタの書き換えで終わるならpushなんて出てこない。
関数の戻り番地の話は良いけど、引数の話を持ち込むなら
スタックを使うとは限らない。
64ビット版Windowsなら条件はあるけどレジスタを使って引数を渡す。
正直もう少し落ち着けと言いたい。
0509デフォルトの名無しさん
2012/06/21(木) 16:52:35.51世の中には関数の戻り先をスタックに積むのはサブルーチン側の役目になっているCPUもある。
そのCPUでは、関数を呼ぶときにはIPを特殊なレジスタに積んでサブルーチンのアドレスをIPに代入するわけだ。
それに、ローカル変数もレジスタが豊富な最近のCPUなら一々スタックに置かない。
まぁ、そんなことはどうでもよくて、関数がインライン展開されてしまえばどの途スタックは関係なくなるよ。
ついでに言えば、スタックオーバーランはスタックオーバーフローと同義と考えられる。
だとすれば、関数呼び出しのネストが深くなってスタックを使い尽くすことを指す。
バッファオーバーランは、スタックに限らずどこででも発生し得る。有名なのは、gets()だね。
まぁ、>501の言うように少しは勉強しろってこった。
0510デフォルトの名無しさん
2012/06/21(木) 16:56:32.70///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
0511デフォルトの名無しさん
2012/06/21(木) 16:56:54.62http://toro.2ch.net/test/read.cgi/gamedev/1329488938/l50
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/l50
0512デフォルトの名無しさん
2012/06/21(木) 17:26:43.06すまん、ありがとう
0513デフォルトの名無しさん
2012/06/21(木) 17:59:09.87スタックがなんだかんだとつまらんことを気にするよりライブラリの使い方一つでも読み解いてた方がマシ
0514デフォルトの名無しさん
2012/06/21(木) 18:16:19.80例を挙げただけなのに不十分とか言われても…
それに結局スタックを使っているような…
使う変数はレジスタでも、呼び出した関数でレジスタを使うためにレジスタの値を
スタックに保存する場合だってあるわけだし、ちょっと乱暴な話になってる気がする。
>>513
スタックの話も知ってないと困ることがあるから、つまらんことでは無いと思う。
それにしても、何でコテはすぐ荒れるんだろう…
0515デフォルトの名無しさん
2012/06/21(木) 18:20:42.020516uy
2012/06/21(木) 19:59:59.450517uy
2012/06/21(木) 20:02:04.79ほんっとうに文章読めないカスだな
俺がいつ「引数」っていった?
まずはお前は
void main(){
int a[1];
printf("%d \n" , a[1]);
printf("%d \n" , a[2]);
printf("%d \n" , a[3]);
}
ここら辺にはいってるデータがなんなのかを知れゴミクズ
0518デフォルトの名無しさん
2012/06/21(木) 20:18:55.23オススメの参考サイトとかある?
0519デフォルトの名無しさん
2012/06/21(木) 20:26:42.11配列については理解してる?
0520デフォルトの名無しさん
2012/06/21(木) 20:29:52.40http://www9.plala.or.jp/sgwr-t/index.html
http://d.hatena.ne.jp/kura-replace/20120611/1339376977
http://d.hatena.ne.jp/kura-replace/20120616/1339856279
猫でもってタイトルに反してめちゃくちゃ癖がなかったっけ
Cの仕様、Windowsの仕組み、Windows SDKの仕様は分けて考える必要がある
Cの仕様自体はたいした物ではないから
まずそこだけきっちり勉強したほうがいいぞ
0521デフォルトの名無しさん
2012/06/21(木) 20:39:37.700522デフォルトの名無しさん
2012/06/21(木) 20:46:10.16>>520 サイトありがとう じっくり考えてみる
0523デフォルトの名無しさん
2012/06/21(木) 20:51:33.250524デフォルトの名無しさん
2012/06/21(木) 21:08:56.24>バッファオーバーランが スタックオーバーランなんだよ
バッファオーバーランとスタックオーバーフローは全然違う概念なんですけど。
想定した範囲を超えてアクセスしてしまうのがバッファオーバーラン。
フラットなメモリモデルでスタックがヒープ領域にまで達してしまったのがスタックオーバーフロー
それはそうと、「スタックオーバーラン」?きいたことないね。
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????
おいおい、スタックポインタをローカル変数分だけずらす(定数マイナスとする)だけなんですけど。
スタックポインタを動かせるのはcall/ret, push/pop だけじゃないんですけど。
sp に対して加減算するオペコードは普通に存在するんですけど。
そもそもローカル変数をアクセスするときはインデックスレジスタを使うと思うんですけど。
>> ・関数を呼ぶと必ずスタックを消費すると思っている
臨機応変にインラインに展開する賢いコンパイラってあるんでしょうかね。そうでなければ call/ret でスタックを消費すると思いますが、はてさて。
糞コテQZに突っ込まれるようでは糞コテ以下と認定せざるを得ません。本当にかわいそうだと思います。
お薬飲みましたか?
0526デフォルトの名無しさん
2012/06/21(木) 21:45:18.330527uy
2012/06/21(木) 21:46:30.31さっさと死ねとしかいえないわ
>>525
このゴミカスはpush以外の命令は実行時間が0秒とでも思ってんのか?
だったら0秒後にお前が早く死ね
さっさと死ね
0528デフォルトの名無しさん
2012/06/21(木) 21:48:09.36http://www.chokkan.org/lectures/2012c/p2-3_pointer.pdf
でも、まったくの初心者には難しいかも
>世の中には関数の戻り先をスタックに積むのはサブルーチン側の役目になっているCPUもある。
???
kwsk。
サブルーチン側うんぬん、というのは ip/pc が変わる前にスタックに積まれるか、変わった後に詰まれるか、っていう差異を問題にしている?
呼び出し側、サブルーチン側の境目の定義を教えてください。
>IPを特殊なレジスタに積んでサブルーチンのアドレスをIPに代入するわけだ。
ということは call のネスト数に限りがあるのでしょうか?
>ローカル変数もレジスタが豊富な最近のCPUなら一々スタックに置かない。
そのかわりに使うレジスタをあらかじめpush/pop しているような気がしてならない‥‥‥。
あるいは使い捨てレジスタを決め打ちしているとか。
0530デフォルトの名無しさん
2012/06/21(木) 21:50:44.19スタック検出機能がない環境もある、パソコン以外なら
>このゴミカスはpush以外の命令は実行時間が0秒とでも思ってんのか?
>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
え?え?
沢山使うと「より」時間がかかる、というのは間違いだといっているだけね。
ローカル変数を沢山使おうが少なく使おうが、かかる時間は
変 わ ら な い。
定数分引くだけですからね。
私の飲んでるお薬あげます。よくききますよ。
http://upload.wikimedia.org/wikipedia/commons/thumb/c/c2/Thorazine_advert.jpg/388px-Thorazine_advert.jpg
うーん、それが、どうやってスタック不足を正確に検出することができるのか、不思議におもっています。
かりにフラットなメモリモデルだとして、ヒープの底とスタックの頭の差をいちいちチェックするのも、なんだか無駄な気がしますし。
0533はちみつ餃子 ◆8X2XSCHEME
2012/06/21(木) 22:11:47.28インテルアーキテクチャ (というか 80386 以降) にはメモリ保護の機能があり、
事前に指定した領域にアクセスがあると例外を投げる仕組がある。
例外を受取ったらその領域を有効にするなど、スタックサイズを必要に応じて伸長することが出来る。
0534デフォルトの名無しさん
2012/06/21(木) 22:16:01.33ヒープの底とスタックの頭の差で見てたのはDOS時代?
仮想メモリって、知ってる?
ヒープとスタックって、メモリ空間が2Gもあると隙間ができるみたい
スタック割り当て空間以外をアクセスするとわかるようになってるってだけ
ヌルポも割り当て空間以外をアクセスしてるよってことでしょ
ページングは普通に使われているだろうとは考えているのですが、フラットなメモリ構造を捨てセグメンテーションを積極的に使っている OS というのは寡聞にしてきいたことがないのです。
>>534
スタックとヒープの間をうーんと広げて隙間にページフォールトを仕掛ける、ということですか。
んー http://www.amazon.co.jp/dp/4756102131 を読みかえしてみよう‥‥‥。
0536デフォルトの名無しさん
2012/06/21(木) 22:43:22.78利点もたくさんあるけど
セグメントモデルにするとスタックが足りなくなると伸長するようにOSが組める
その分スタックセグメントを別扱いしないといけないなど欠点もある
でもこちらの方が安全性が高い
0537デフォルトの名無しさん
2012/06/21(木) 22:47:42.60どうせならユーザースタックpush/popとシステムスタックcall/retもわけたらいいと夢想してきてはいたのですが、もうそんなOS/言語系って存在するのでしょうか?
0539デフォルトの名無しさん
2012/06/21(木) 23:02:07.770540デフォルトの名無しさん
2012/06/21(木) 23:08:39.400541デフォルトの名無しさん
2012/06/21(木) 23:13:32.480542デフォルトの名無しさん
2012/06/21(木) 23:18:01.34仮想記憶もそれと基本的に同じ仕組で実現してるしな
0543デフォルトの名無しさん
2012/06/21(木) 23:25:42.60ユーザースタックとシステムスタック
を、そういう風に分けてるマイコン?ってあるんっけ?
6809ははっきりそうだったのですが、それ以降はよくわからないのです。68k は違うみたいだし。
0545デフォルトの名無しさん
2012/06/21(木) 23:53:42.65なんか古いの知ってるみたいだけど
push/popだけ分けたのは6809で終わったんじゃね
0546デフォルトの名無しさん
2012/06/22(金) 00:14:04.91分けない環境も多いけど。
>>520
その先頭はとってもダメになるサイトだ。
0547デフォルトの名無しさん
2012/06/22(金) 00:15:58.430548デフォルトの名無しさん
2012/06/22(金) 00:16:09.56「そのサイトはゴミだ」
と言わないとダメだろw
伝わらねーよwww
0549デフォルトの名無しさん
2012/06/22(金) 00:19:14.930550デフォルトの名無しさん
2012/06/22(金) 00:20:48.57> 俺がいつ「引数」っていった?
> 504
> インライン展開でもしてない限り関数呼んだ時点でスタック使ってるから
>
>
> まずはお前らは
>
> void main(){
> int a[1];
> printf("%d \n" , a[1]);
> printf("%d \n" , a[2]);
> printf("%d \n" , a[3]);
> }
>
>
> ここら辺にはいってるデータがなんなのかを知れゴミクズ
「関数を呼んだ時点」と「はいってるデータ」の繋がりが全く分からないんだが…
0551デフォルトの名無しさん
2012/06/22(金) 00:36:34.36printfは入り口であって、本体は別の関数だったりするし
0552デフォルトの名無しさん
2012/06/22(金) 00:50:13.88>>508でレジスタ渡しの話をしたら>>517で噛み付いてきたのよ
「引数」の話じゃないって
だから何が言いたいのかな〜っと
0553デフォルトの名無しさん
2012/06/22(金) 00:54:49.5368k命令表をみたところでは、ポストインクリメント/プリデクリメントつきレジスタ間接アドレッシングのmovでデータスタックとしてやっていけそうですね。link/unlk は使用禁止かもしれませんが。
実際どうなんでしょう?
0555デフォルトの名無しさん
2012/06/22(金) 01:35:30.98>実は,スタックポインタは2つ存在し,CPUのモードによって自動的に使うべきスタックポインタが切 り替わる.
> CPUがスーパバイザモードの時はスーパーバイザスタックポインタ(SS P)が使用され, CPUがユーザモードの時はユーザスタックポインタ(US P)が使用される.
> 従って,スーパバイザモードでのスタック操作は,USPに影響を与えず, ユーザモードでのスタック操作は,SSPに影響を与えない.
0556デフォルトの名無しさん
2012/06/22(金) 01:37:28.15PalmOSはA6をデータスタックに使っていたよ。
今見たけど、linkも使っているね。
0557デフォルトの名無しさん
2012/06/22(金) 01:48:05.210559デフォルトの名無しさん
2012/06/22(金) 02:20:00.11フレームポインタのこと?
0560デフォルトの名無しさん
2012/06/22(金) 02:25:48.19x86の勢いがよかったから、絶対番地アクセスが優位になった?
call/ret に使うスタックはそれ以外の用途では使用しないようにして、バッファオーバーランによる乗っ取りが皆無になればずいぶんと安全になるのでは?というお話です。
0562デフォルトの名無しさん
2012/06/22(金) 03:07:36.89個人的には、未熟者が作ったって証明でしかないように思ってるけど
0563デフォルトの名無しさん
2012/06/22(金) 08:16:44.38チケット購入者 各 位
1 「K-POP IN 豊岡・神鍋高原」のイベント中止について
株式会社アンフィニジャパンでは、「K-POP IN 豊岡・神鍋高原」と題するライブイベントを、平成24年6月30日及び同年7月1日に開催することとなっておりました。
しかしながら、関係各所との行き違い等から、当初予定していたチケット販売計画は大幅な変更を余儀なくされ、チケット販売が低調に推移しました。
その結果、上記イベントを開催するために必要な各プロダクション、各業者への支払資金をねん出することができなくなり、上記イベントについては、中止させて頂くこととなりました。
チケットをご購入された皆様には、深くお詫び申し上げます。
2 ご購入いただいたチケット代金について
イベントの中止に伴い、本来であれば、当然にチケット代金をご返金すべきこととなります。
しかしながら、株式会社アンフィニジャパンにおいては、現在、見るべき資産がほとんどない状態です。
皆様にご購入いただきましたチケット代金についても、ほぼ全てを韓国プロダクションへの前金の支払及び開催準備費用に費消しており、株式会社アンフィニジャパンにおいてご返金することができなくなっております。
現状、株式会社アンフィニジャパンでは、大幅な債務超過状態にあり、自己破産の申し立てを行わざるを得ない状態です。
チケットをご購入されました皆様には、大変なご迷惑をお掛けすることとなり、深くお詫び申し上げます。
http://www.infinijapan.jp/
http://ticket.pia.jp/pia/event.do?eventCd=1223924
K−POP IN 豊岡・神鍋高原
KARA、超新星、Rainbow、パク・ヒョンビン…K-POPの人気アーティト達が、
兵庫県豊岡市にある、神鍋高原に大集合!激レア・イベントをお見逃しなく!
【中止?】K-pop in 豊岡・神鍋高原【契約不履行】
http://uni.2ch.net/test/read.cgi/4sama/1340285151/
0564デフォルトの名無しさん
2012/06/22(金) 10:37:47.33・配列とポインタについては現在でもわかりにくいため、私の設計ミスといってよいかもしれない。
http://web.archive.org/web/20081203130450/http://www.ttoyota.com/threedesigners/cjava04.php
月例のWindowsのパッチですら「未チェックバッファ」とかなんとか頻繁に出てくるくらいですから、「未熟者」よばわりという旧日本軍的竹槍ストラテジーではどうしようもないと思います。
いや、あります。フラットモデルではセグメント=セレクタを同一にしていると思います。
0568デフォルトの名無しさん
2012/06/22(金) 19:23:31.580569デフォルトの名無しさん
2012/06/22(金) 19:24:46.33有限、無限の違いがわからない人が作ってるだけでしょ
LOADALL!
個人的な経験からいうのもなんですが、ついうっかりやってしまったりします。アマチュアゆえに回避定石や検出手法を知らないだけだといいのですが。
0572デフォルトの名無しさん
2012/06/22(金) 20:10:30.50窓s系やってるのは初心者ってことかい?
ん?よくわからないんですけど。
Windowsのパッチでバッファオーバーラン関連が少なくない、というのは事実を述べたまで。
アマチュアの自分でもやっちまう、というのは個人的感想を述べたまで。
その両者に関連があるとは一言も申しておりませんが、両方に関連があると考えてしまうその思考過程には興味があります。すくなくとも論理学初歩を通過した思考過程ではありますまい。
0574デフォルトの名無しさん
2012/06/22(金) 20:21:44.41で、今だに騒いでるのはどっち方面かよく調べてみようね
0575デフォルトの名無しさん
2012/06/22(金) 20:35:28.030576デフォルトの名無しさん
2012/06/22(金) 20:46:24.560577デフォルトの名無しさん
2012/06/22(金) 21:08:05.46具体的には、そのファイルを読み取り、違うファイルに書き出すという内容です。
しかし問題として…
読み取りファイル「AAA/BBB/c.txt」→オープンは正常だがChasenがエラー(存在しません)
読み取りファイルをディレクトリBBBにコピー「AAA/c.txt」→オープン、Chasen共に正常
読み取りファイルをディレクトリBBBにコピーし名前変更「AAA/BBB/d.txt(c.txt)」→オープン、Chasen共に正常
ディレクトリ・ファイルの権限の問題なのか、ファイルの中身の問題なのか色々とプログラムを確認しましたが、解決できません。
指定が間違っている、読み取りファイルが空というのでは無いようです。
いちおディレクトリにも権限を与えています。
考えでも良いので、もしよければ意見お願い致します。
0578デフォルトの名無しさん
2012/06/22(金) 21:12:18.56マルチウゼーという意見
0579デフォルトの名無しさん
2012/06/22(金) 21:30:58.670580デフォルトの名無しさん
2012/06/22(金) 23:26:00.15正し要素はfloat型。
どういうアルゴリズムがいいかな?
3.4323+4.2342+1.323+1.23121=10になればいい
ランダム生成。
0581デフォルトの名無しさん
2012/06/22(金) 23:28:33.88?
0582デフォルトの名無しさん
2012/06/22(金) 23:30:02.21小数点型ってことです。
int型じゃない。
3とか2じゃない。
2.1212
4.0
0.232
とか。
0583デフォルトの名無しさん
2012/06/22(金) 23:30:29.90総和が10って以外に特に制約がないなら
3つランダムで決めて4つ目で帳尻合わせればいい
0584デフォルトの名無しさん
2012/06/22(金) 23:33:54.420585デフォルトの名無しさん
2012/06/22(金) 23:37:20.69あーそれが早いかな。
1時間も頭使って俺馬鹿だ。
0586デフォルトの名無しさん
2012/06/22(金) 23:44:15.31x^n + y^n = z^n となる自然数の組み合わせ( x, y, z )を見つけ出すプログラム書こうぜ?^^
0587デフォルトの名無しさん
2012/06/22(金) 23:44:45.830588デフォルトの名無しさん
2012/06/22(金) 23:48:43.94n=1,2以外は自然数で無いんじゃないっけ?
0589デフォルトの名無しさん
2012/06/22(金) 23:49:43.55不思議なところにお住まいですね
0590デフォルトの名無しさん
2012/06/22(金) 23:52:46.861000000なりの長さの棒きれをランダムに三か所で割って
あとから1/100000にすりゃあいいだろ……
それを実装して終わりだろが
0591デフォルトの名無しさん
2012/06/22(金) 23:52:54.64あと、前にもこの板で話題になったけど、小数点を表すのに . を使う地域と , を使う地域があるらしいな。
で、小数点に . を使う地域は桁区切りに . を使うので大変ややこしいとかなんとか。
0592デフォルトの名無しさん
2012/06/22(金) 23:53:51.24フェルマーでしょ。
それ。
ところで最近はiphoneのアプリとか多いわけだが、どんなゲームが
流行ってるの?やっぱり形を変えて同じ原理のゲームが流行ってるわけ?
Cでパズルゲーム作りたいから教えて。
0593デフォルトの名無しさん
2012/06/23(土) 00:00:27.630594デフォルトの名無しさん
2012/06/23(土) 00:01:41.82味^n + 香り^n = 舌触り^n となるブルマの組み合わせは存在しない
0595デフォルトの名無しさん
2012/06/23(土) 00:03:05.72オチは?
0596デフォルトの名無しさん
2012/06/23(土) 00:06:06.140597デフォルトの名無しさん
2012/06/23(土) 00:12:08.84どうでもいいが、>>588は「自然数では、n=1,2以外の解は存在しない」という意図だと
読み取れないようだとまずいだろ。
多少わかりにくいとしても、「1,2以外は自然数ではない」がおかしいのはわざわざ指摘するまでもなく
「そんなふうに思っている人がいるのかも」という考え自体も非常識。
0598デフォルトの名無しさん
2012/06/23(土) 00:21:55.72,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; Standard Input/Output …
ヾ;;;ハ ノ .::!lリ;;r゙
`Z;i 〈.,_..,. ノ;;;;;;;;> そんな事も知らない時期が
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f 俺にもありました。
~''戈ヽ `二´ r'´:::. `!
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A7%E3%83%AB%E3%83%9E%E3%83%BC%E3%81%AE%E6%9C%80%E7%B5%82%E5%AE%9A%E7%90%86
0600デフォルトの名無しさん
2012/06/23(土) 00:28:38.6732bit の unsigned long でそれを満たす数値を探すってのなら成立しそう
ラップアラウンドのおかげで
0601デフォルトの名無しさん
2012/06/23(土) 00:28:55.98マジレスワロタwww
ガチで、iphoneとかで皆パチパチゲームやってるけど、どんなのやってんだ?
ミニゲームでも作りたい。
0602デフォルトの名無しさん
2012/06/23(土) 00:33:50.13x^n+y^n+z^n=w^nとか
x^n+3^y^n=z^n
とか類似系いくらでもあるじゃん。
何が楽しくてこんなもん解くんだろうな。
0603デフォルトの名無しさん
2012/06/23(土) 00:41:49.860604デフォルトの名無しさん
2012/06/23(土) 00:47:07.88x,y,zが有理数の場合、nは3以上存在するようなx,y,zは存在するの?
1.323^3+1.1234^3=2.323^3みたいな。適当だけど。
有理数まで広げたらスパコンでも解析無理そうだね。
0605デフォルトの名無しさん
2012/06/23(土) 00:49:23.03正の有理なら整数倍すれば整数になるんじゃあるまいか
0606デフォルトの名無しさん
2012/06/23(土) 00:49:40.260607デフォルトの名無しさん
2012/06/23(土) 00:51:46.81例えばガウスも「一見解けない問題なんていくらでも作れる」と
証明を試みる意義をあまり認めていない発言をしていたはず
とはいえフェルマーの最終定理の場合はかなり微妙なバランスの上にあるようで
類似のオイラー予想(x^4 + y^4 + z^4 = w^4を満たす自然数xyzwは存在しない)は
否定的に解決されている
まあ板に身近な所でいくと、4色問題がグラフの塗り分け問題に発展して、
コンパイラのレジスタ割り付けに応用されたり
未解決問題は研究発展の原動力になるという側面はあるんだろう
0608デフォルトの名無しさん
2012/06/23(土) 02:49:34.35char *a, *b;は同じ意味ですか?
0609デフォルトの名無しさん
2012/06/23(土) 02:52:23.39char *a;
char *b;
と書くこと覚えませう
0610デフォルトの名無しさん
2012/06/23(土) 03:17:03.73#include <stdio.h>
int main(void) {
char* a, b;
char *c, *d;
int i;
i = sizeof a;
printf("%d\n", i);
i = sizeof b;
printf("%d\n", i); /* bは、char */
i = sizeof c;
printf("%d\n", i);
i = sizeof d;
printf("%d\n", i);
return 0;
}
/*
D:\work>sizeofp
4
1
4
4
*/
0611uy
2012/06/23(土) 03:51:17.21なんだ、
お前もただのヴァカか
そもそもC言語って幅広く使われて
コンパイラも実行環境も腐るほどあるわけで
どこの環境を前提に話してんだお前
Windows限定の話ならさっさと死ねよお前
ローカル変数でスタック1MBくらい常に使ってろよwwwwwwバーーカwwwwwwwwwww
実行速度がかわらねーとかなんとか、どこで拾ってた知識だからしらねえけど・・・ベンチマーク取れよカス
何もしねーのなwwwwwwwwwwww
根本的にはずれた事言っちゃう時点でマジでお前知ったかだ、死んだほうが良い
お前のゴミカスレスなんて信用ならないんだから、ちゃんとソースだせソース、実行結果と環境と全てを示せゴミが
0612uy
2012/06/23(土) 03:57:26.61こんな場所でグダグダ知ったかレス続けてるくらいなら勉強しろ
お前は俺の高校生の時点でのレベルさえ超えていない
何年やっても何十年やっても絶対に超えられない
見えないものに対しての予想、憶測と、確信の違い
お前の予想なんてだれもきいてねえから俺みたいに確信のあるレスをしたいならあと10年は勉強してろ
大体さぁC言語を語るならアセンブラとOSレベルまで詳しくなれよゴミカスが
OSすら作った事のない奴が機械語レベルでまともな議論できるはずが無いwww
ぷろせすの仕組み(笑) かーねる(笑) とかwwwwwww
教科書に書かれてる知識だけで実際のコードを知らないから
何にもわかっていない
目障りだ 知ったかはさっさと死ね
0613デフォルトの名無しさん
2012/06/23(土) 03:59:09.100614デフォルトの名無しさん
2012/06/23(土) 04:17:04.720615デフォルトの名無しさん
2012/06/23(土) 04:17:05.02612 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
0616デフォルトの名無しさん
2012/06/23(土) 04:25:36.56訴訟社会のアメリカで『私の設計ミスといってよいかもしれない』か。
0617uy
2012/06/23(土) 06:16:46.54今の時代にC言語を使っている層
そりゃな、大体わかるが
0618デフォルトの名無しさん
2012/06/23(土) 07:22:35.07検出された放射能物質プルトニウムの濃縮係数は、国際原子力機構(IAEA)が
定める勧告値より最大2.11倍高かった。複数の韓国メディアが伝えた。
濃縮係数は、海水中の放射性物質が、貝や海藻など生物に取り込まれ蓄積された
濃度を示す。貝類から検出されたプルトニウム濃縮係数の平均値は2813で、
IAEAの勧告値<3000>を下回ったが、江陵近海で採取した貝は6341に達した。
海草類からは放射性物質ストロンチウム90が検出された。濃縮係数の平均値は14でIAEAの
勧告値<10>よりも高く、江陵近海のわかめは17、仁川近海のわかめは10だった。
2005―09年の平均値も15で勧告値を超えていた。
朝鮮半島の周辺海域20カ所で採取した表層海水からは、プルトニウム239・240が検出され、
平均濃度は1キログラムあたり2.91―6.82マイクロベクレルだった。
韓国ソウルの道路は毎時3マイクロシーベルト 福 島 緊 急 避 難 区 域 よ り 上
http://blog-imgs-49-origin.fc2.com/f/x/y/fxya/wwwdotuporg2243941.jpg
韓国の量販店の食器から毎時23マイクロシーベルト
http://keyframe.imnews.imbc.com/today/2012/01/17/2/Large_3425047.jpg
K-POPでチケット詐欺発生か? 突如ライブ中止&代金返還不可 (´・ω・`)
http://long.2chan.tv/jlab-long/10/s/long289597.jpg
韓国食品の危険性 ネット販売のキムチから幼虫とカエル
http://www.nicovideo.jp/watch/sm16732021
不衛生すぎる韓国のキムチ工場 冷蔵庫にはウジ虫・・
http://www.nicovideo.jp/watch/sm16731897
韓国産キムチの日本向け輸出衛生検査が免除<`∀´>
http://www.nicovideo.jp/watch/sm14634923
0620Perl忍者 ◆M5ZWRnXOj6
2012/06/23(土) 08:56:06.260621uy
2012/06/23(土) 09:34:33.800622デフォルトの名無しさん
2012/06/23(土) 09:43:51.700623SCHEME餃子 ◆8X2XSCHEME
2012/06/23(土) 11:19:13.57それ自体は (今のところは) それほど応用が見出されてないみたいだが、
証明の過程で様々な発見は有った。
どれがどんな役に立つか事前に完璧にわかるわけでもないので、
意味が有るとか無いとかは解いた後じゃないとわからないし、
後々に有用性が発見される場合もある。
ブール代数が考案された時に現代のようなコンピュータは想像もできなかったと思うぞ。
究極的には意味なんてないだろ。
そんなこと言ったらお前って何の意味があるんだろうな?
似たような人生を歩む人はいくらでもいるじゃん?
何が楽しくて生きてるんだろうな。
0624デフォルトの名無しさん
2012/06/23(土) 11:32:04.130625デフォルトの名無しさん
2012/06/23(土) 13:40:59.35ローカル変数を沢山使うとpush命令が沢山使われて遅くなるのは本当ですか?
0626デフォルトの名無しさん
2012/06/23(土) 14:09:15.04int main(void)
{
int i, j;
char word[99];
scanf("%s", &word);
for (i=0;i<=98;i++){
if (word[i]==',')
j=i;
}
printf("%s,", word[j+1]);
for (i=0;i<=98;i++){
if (word[i]==',')
word[i]='\0';
}
printf("%s\n", word);
return 0;
}
カンマの前後を入れ替えて表示したいんですが、エラーになってしまいます。
0627デフォルトの名無しさん
2012/06/23(土) 14:11:40.730628デフォルトの名無しさん
2012/06/23(土) 14:15:57.520629デフォルトの名無しさん
2012/06/23(土) 14:42:28.88>>628
できました。ありがとうございます。
0630uy
2012/06/23(土) 14:49:42.540631デフォルトの名無しさん
2012/06/23(土) 15:21:55.830632vy
2012/06/23(土) 15:23:59.690633デフォルトの名無しさん
2012/06/23(土) 15:25:11.06いまさら32ビットwwwwwwwwww
4バイトwwwwwwwwww
0634デフォルトの名無しさん
2012/06/23(土) 15:31:07.480635デフォルトの名無しさん
2012/06/23(土) 15:31:47.45staticに文句言う奴は読み方が間違ってるんだよ。
0636デフォルトの名無しさん
2012/06/23(土) 15:43:58.22int const b
の違いを教えてください。
0637デフォルトの名無しさん
2012/06/23(土) 16:15:02.140638デフォルトの名無しさん
2012/06/23(土) 16:55:40.670639デフォルトの名無しさん
2012/06/23(土) 17:04:37.34このURLのページ、
> Cといえばポインタと現在でも騒がれていますが、設計者本人も"変なもの"と考えているわけです
出鱈目だな。ポインタと配列の扱い方に歪みがあったと言ってるだけ。
0640デフォルトの名無しさん
2012/06/23(土) 17:10:17.98#include <stdio.h>
void put_const_int(const int i)
{
putchar(i);
}
void put_int_const(int const i)
{
putchar(i);
}
int main(void)
{
const int a = 97;
int const b = a;
put_const_int(a);
put_const_int(b);
put_int_const(a);
put_int_const(b);
return 0;
}
/*
D:\work>gcc -Wall -o int_const int_const.c
D:\work>int_const
aaaa
D:\work>
*/
0641デフォルトの名無しさん
2012/06/23(土) 19:55:23.540642デフォルトの名無しさん
2012/06/23(土) 19:58:22.910643デフォルトの名無しさん
2012/06/23(土) 20:01:48.010644デフォルトの名無しさん
2012/06/23(土) 20:08:44.65>そもそもC言語って幅広く使われてコンパイラも実行環境も腐るほどあるわけで
いわれなくても。
>どこの環境を前提に話してんだお前Windows限定の話ならさっさと死ねよお前
どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
アセンブラを知らないruby脳はこれだから困る。
>実行速度がかわらねーとかなんとか、どこで拾ってた知識だからしらねえけど・・・ベンチマーク取れよカス何もしねーのなwwwwwwwwwwww
ベンチとるまでもないこと。これだからruby脳は困る。
>お前のゴミカスレスなんて信用ならないんだから、ちゃんとソースだせソース、実行結果と環境と全てを示せゴミが
http://toro.2ch.net/test/read.cgi/tech/1313183984/
>大体さぁC言語を語るならアセンブラとOSレベルまで詳しくなれよゴミカスが
それはお前だ。さあ、Cのソースを貼ってごらん?できるかな?できないだろうが。
アセンブラのソースでもいいよ。
しかし残念なことには、フェルマーの最終定理ほど私のような素人にも内容の理解が容易でかつ証明困難、という魅惑的な未証明命題がなくなってしまったことだ。
なにかフェルマーの地位に到達できるほどの未証明定理はないものだろうか?
コラッツの予想?いまいちですなあ。
自前のランタイムを使っていたこともありましたが、今はエンバカなんとかの評価版 bcc32 -v -vG を便利につかわせてもらっています。別にソニータイマーは組み込まれていないようです。
0649デフォルトの名無しさん
2012/06/23(土) 21:41:17.920650デフォルトの名無しさん
2012/06/23(土) 21:44:09.63メモリリーク
がどういうものか考えることからはじめせう
0651デフォルトの名無しさん
2012/06/23(土) 21:46:06.240652デフォルトの名無しさん
2012/06/23(土) 21:47:58.090653デフォルトの名無しさん
2012/06/23(土) 22:14:19.78今時はツールだろ
0654デフォルトの名無しさん
2012/06/24(日) 01:47:44.86互換性あるツールじゃないと
0655デフォルトの名無しさん
2012/06/24(日) 01:56:16.780656デフォルトの名無しさん
2012/06/24(日) 01:59:34.18スペック
0657デフォルトの名無しさん
2012/06/24(日) 02:05:28.640658デフォルトの名無しさん
2012/06/24(日) 03:31:13.360659デフォルトの名無しさん
2012/06/24(日) 03:53:10.30http://ideone.com/Mon3v
0660デフォルトの名無しさん
2012/06/24(日) 06:16:38.29ありがとうございました。
0661デフォルトの名無しさん
2012/06/24(日) 07:26:59.430662デフォルトの名無しさん
2012/06/24(日) 09:12:34.370663デフォルトの名無しさん
2012/06/24(日) 09:36:15.49http://engawa.2ch.net/test/read.cgi/poverty/1340431520/
K-POP終了 「チケット12000枚完売」 → 実は450枚だった
http://engawa.2ch.net/test/read.cgi/poverty/1340496276/
↓チケット購入者の様子
http://long.2chan.tv/jlab-long/10/s/long289597.jpg
K-POPブームついに終焉? チケット売れずイベント中止、返金もできず
兵庫県内で開催予定だったK-POPイベントが、チケット売れ行きが低調で直前になって中止になった。
イベントを主催した会社は事実上倒産し、チケットの払い戻しも出来ないという有様で、
チケット購入者からは怒りの声が出ている。
同社担当弁護士によると、当初1万2000枚ほどの販売を見込んでいた代理店との契約がなくなってしまい、
他でまかなおうとしていたが、それも間に合わず中止になった。
いろいろ事情はあるにせよ、「飛ぶようには売れなかった」ということは確かなようだ。
帝国データバンクによると、同社が直接販売したチケットは450枚。
「『あのKARA』や『あの超新星』が来るのに何で販売低調なんだ」
ネットでは、チケット購入者からは「許せない。責任もって返金してもらわないと」と怒りの声が出ている。
疑問なのが、K-POPがブームの中、KARAや超新星といった大人気グループを呼んでも
なぜチケットを捌けなかったのか、という点だ。
2012/6/22 19:01
http://www.j-cast.com/2012/06/22136771.html?p=2
0664uy
2012/06/24(日) 09:40:08.180665デフォルトの名無しさん
2012/06/24(日) 11:17:19.420666デフォルトの名無しさん
2012/06/24(日) 11:18:32.64役に立たないプログラマを見分けるためのデータ構造だよ
採用では良く使われるよ
0667デフォルトの名無しさん
2012/06/24(日) 11:22:53.93あれを構造体で定義するときに共用体使って定義しといたら
アクセスが容易になるじゃない
0668デフォルトの名無しさん
2012/06/24(日) 11:26:42.59socket通信とかプロトコルスタックに使われている。プロユースだな。
http://itpro.nikkeibp.co.jp/article/COLUMN/20071024/285445/
0669デフォルトの名無しさん
2012/06/24(日) 11:26:42.530670デフォルトの名無しさん
2012/06/24(日) 11:31:40.72つっ マイコンチップレジスターの定義
0671デフォルトの名無しさん
2012/06/24(日) 11:45:59.99それだと実装依存の使い方になるよね。
structやunionはbyte/bit配置の保証ないから。
ほとんどのコンパイラがpragmaかオプションで指示可能だけど。
0672デフォルトの名無しさん
2012/06/24(日) 12:33:32.100673デフォルトの名無しさん
2012/06/24(日) 12:34:41.35どのように指定すればいいのでしょうか?
スペースがでてきたら〜 は
if(data[i] == ' '){
}
のようにやっています
0674デフォルトの名無しさん
2012/06/24(日) 12:40:32.99}
0675uy
2012/06/24(日) 12:41:08.24>どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
お前が無知なんだよ
当たり前のことが、わかっていない
>ベンチとるまでもないこと。これだからruby脳は困る。
そしてやったら自分の間違いに気づいてしまうから怖くて出来ないだけ
おいためしにローカル変数1000000TB分宣言して最適化オプションはずしてみろwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
さ っ さ と や れ
さ っ さ と や れ
さ っ さ と や れ
0676デフォルトの名無しさん
2012/06/24(日) 12:41:34.12キャリッジリターンと
ラインフィード、
およびOSウんぬんの話
0677デフォルトの名無しさん
2012/06/24(日) 12:45:12.86半角の \n ですよね? それでやりましたができませんでした
0678uy
2012/06/24(日) 12:46:34.88ローカル変数を宣言しすぎればスタックオーバーフローするという事がわかってないんじゃないか
一体ここで「どういうチェック」が行われているか
いってしまえばスタックオーバーフローなんてのはOSの設計ミスであって、
スタックサイズなんて伸縮させれば良い
これだからOSすら作ったことないゴミは教科書に書かれてる知識以外が全然ないから
アドリブ聞かせようとすると的外れなこと言いはじめるんだよ
「C言語」の実行コードの時点では速度は変わらないとしてもw
コンピュータっていうのはCPU(レジスタ)とOSとメモリを使うんだからお前も頭使えよバカ
0679デフォルトの名無しさん
2012/06/24(日) 12:46:57.440680デフォルトの名無しさん
2012/06/24(日) 12:51:53.87たりめーだ
strcmpつかえハゲ
0681デフォルトの名無しさん
2012/06/24(日) 13:09:01.990682uy
2012/06/24(日) 13:12:47.18bbb
ccc"
p a.split
# ["aaaa", "bbb", "ccc"]
0683デフォルトの名無しさん
2012/06/24(日) 13:23:47.07できる。(関数の型)式
0684デフォルトの名無しさん
2012/06/24(日) 14:22:15.21おまえが優秀なのはよくわかったよ
すこしはてかげんしてください
0685デフォルトの名無しさん
2012/06/24(日) 15:51:54.29はいはい、よくできまちたねー、えらいえらい
0686デフォルトの名無しさん
2012/06/24(日) 16:52:18.45どこが優秀なのか詳しく
自演か?
0687デフォルトの名無しさん
2012/06/24(日) 17:42:01.790688デフォルトの名無しさん
2012/06/24(日) 17:54:39.31aaaaaaaaaaaaaaaaaaaaaaaaaaaa
0689uy
2012/06/24(日) 18:23:00.20お前らのような下級ゴミカスとは格が違う
話しかけるなよクズ
0690uy
2012/06/24(日) 18:30:56.770691デフォルトの名無しさん
2012/06/24(日) 18:33:14.610692uy
2012/06/24(日) 18:37:36.440693デフォルトの名無しさん
2012/06/24(日) 18:44:03.870694デフォルトの名無しさん
2012/06/24(日) 19:16:57.040695デフォルトの名無しさん
2012/06/24(日) 19:18:27.630696uy
2012/06/24(日) 20:51:27.03人は↓で出来ている 木構造
. o
┌─┴─┐
o o
┌┴┐ ┌┴┐
.o .o o o
┌┴┐
o o
世界は↓で出来ている グラフ構造
o → o ← o
↑ ↓ ↑
o ← o → o
↓ ,↓ ↑
o → o → o
↑の2個を実装できない初心者(笑)が作るもの ↓ 線形リスト
o → o → o → o → o → o o → o → o → o → o → o → o → o → o → o → o
o ← o ← o ← o ← o ← o o ← o ← o ← o ← o ← o ← o ← o ← o ← o ← o
これで理解できなければプログラミングを引退しとけよ初心者はしね
0697デフォルトの名無しさん
2012/06/24(日) 20:53:58.68スレチ
0698デフォルトの名無しさん
2012/06/24(日) 20:55:45.58次のロッカーの住所と適当なデータが入ったロッカーが連続している。次のロッカーがなければ住所はNULL。
0699デフォルトの名無しさん
2012/06/24(日) 20:57:32.96正)点在している
>>645
>どんなCでもローカル変数の量で速度が変わるなんてきいたことない。
>>675
>当たり前のことが、わかっていない
当たり前というのであれば、次のCコードと、それから吐かれた .s で説明してくれないか?
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
ローカル変数の定義数にしたがって変化するのは次の行
subl $212, %esp
の $212 の大きさだけ。この計算がオペランドの定数の大きさによって、速くなったり遅くなったりするとでもいうのか?
>>678
>そもそもローカル変数の宣言によってスタックを消費し、
>ローカル変数を宣言しすぎればスタックオーバーフローするという事がわかってないんじゃないか
速さの話から す り か え ま し た か?
>スタックサイズなんて伸縮させれば良い
i386 ならフラットなメモリ構造を捨てセグメンテーションを採用しないかぎり、それはできない。
論理アドレスがぶつかれば、そこでスタックオーバーフローだ。
そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。
もっとも論理アドレス空間が 64bit になった現在、そんな心配は無用ともいえる。
0701デフォルトの名無しさん
2012/06/24(日) 21:00:19.820702uy
2012/06/24(日) 21:08:45.90他の要因でも遅くなるケースはあるといっているのにまだわかってないか
http://toro.2ch.net/test/read.cgi/tech/1337067149/674-675
>そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。
え、もしあったらどうする?
泣いて謝る?
これからの将来スタック伸縮可能なOSが出てきたら泣いて謝ってくれますか?
0703uy
2012/06/24(日) 21:11:43.820704デフォルトの名無しさん
2012/06/24(日) 21:16:43.57Hi, KS.
How was the last weekend?
そもそも
>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????
とローカル変数を push で確保すると思っていた(爆笑)ようですが、それが論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
そろそろ、普通に使う範囲での妥当なサイズのソース
>>700
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
で説明していただけませんかね。ruby 脳ではやっぱり無理でしょうかね?
>>700
>そして i386 でセグメンテーションを積極的に採用した OS はないはずだ。
>>702
>え、もしあったらどうする?
使ってみたいですねえ。セグメンテーション利用リミット値できっちり保護されていて、コールゲートも使用していて、というのはプロユースではあるのかもしれません。
>これからの将来スタック伸縮可能なOSが出てきたら泣いて謝ってくれますか?
将来の話にすりかえるのですか?ということは現在はない、と認めているのですね。負けそうになると(というか負けているんけど)、話のすり替えばかりするのですね。
0706uy
2012/06/24(日) 21:49:55.73ローカル変数のサイズ合計 > CPUキャッシュサイズ
0707デフォルトの名無しさん
2012/06/24(日) 21:51:54.42ヒント
馬鹿 |||||||||
0708uy
2012/06/24(日) 21:57:34.13悪い癖だわ
0709デフォルトの名無しさん
2012/06/24(日) 22:01:37.30> はぁ、また初心者を論破してしまったか
pppppppppppppppppppppppppppppppppppppppppppppppp
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。
それはそうと、
>>506
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????
とローカル変数を push で確保すると思っていた(爆笑)ようですが、それが論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
そろそろ、普通に使う範囲での妥当なサイズのソース
>>700
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
で説明していただけませんかね。ruby 脳ではやっぱり無理でしょうかね?
0711デフォルトの名無しさん
2012/06/24(日) 22:10:18.430712uy
2012/06/24(日) 22:14:12.34お前らのような下級ゴミカスとは格が違う
俺に勝つなど100光年早い
0713デフォルトの名無しさん
2012/06/24(日) 22:14:14.34フラットメモリモデルもセグメントモデルの一種
uyが言いたいのはスタックセグメントを分離しようって事だろ?そういうOSも実際にある
http://homepage3.nifty.com/ryuz/c/memorymodel.html
0714uy
2012/06/24(日) 22:15:46.01>どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。
あ、ついに遅くなるって認めちゃった?
>そろそろ、普通に使う範囲での妥当なサイズのソース
いきなり範囲指定wwww
まだpush,pushいってるけどさ
push命令を他の高速なcpu命令で代用するようにCコンパイラが最適化していたとか
ある意味「遅くなるか」「全く遅くならないか」という議論においてはどうでもいい
「速くなった」というだけで、演算速度が0クロックになったわけではない
まさか二進数の計算が、桁が1桁で、たとえも999999999^9999999桁でも実行速度が変わりませんとか、そこまで逝ってるのか?
0715uy
2012/06/24(日) 22:17:52.70桁が1桁でも、 たとえ999999999^9999999桁でも
0716uy
2012/06/24(日) 22:37:08.67で、決着ついてる
初心者にも良くわかりそうなキャッシュについての説明
http://myoga.web.fc2.com/prog/cpp/opti02.htm
まぁおれも詳細は今知ったんだけどね
詳細知らずとも遅くなる箇所と、遅くならない箇所くらいは分かるレベルなわけで
ローカル変数を大量に定義したら遅くなるって事です
そのサイトのここ重要
>スタック溢れにならなくても、スタックに巨大なデータを置くと、 スタック自体でキャッシュミスが起こったりして遅くなります。
>あ、ついに遅くなるって認めちゃった?
普通の領域でも遅くなるのにスタックだけが遅くならない理由があるとでも?普通の領域で起こる事象を「スタックで起こる事象だ」と主張するのは滑稽ですね。
>いきなり範囲指定wwww
だって、最初の主張 >>506 では、
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????
なんでしょ。比較的小さな範囲でも発生するんじゃないですか?>>506 が正しければ。
>まだpush,pushいってるけどさ
>ush命令を他の高速なcpu命令で代用するようにCコンパイラが最適化していたとか
>ある意味「遅くなるか」「全く遅くならないか」という議論においてはどうでもいい
>「速くなった」というだけで、演算速度が0クロックになったわけではない
あのね。 >>506 ではローカル変数を沢山使うとスピードが遅くなる、つまりローカル変数の量によってスピードがかわると主張しているのでしょう?
だったら比較すればいいじゃない、ローカル変数1個のときと100個のときとで。そういう問題じゃないのでしょうか。
アセンブリソースをみればそういうわけではないことが自明なんですけれどもね。
でそれと、「演算速度が 0クロックにならない」とどんな関係があるのでしょうか?どういう主張を補強したいのか意味不明ですね。
論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
>そういうOSも実際にある
ぜひ。大概のOSは DS=SS みたいなんです。紹介のページでも Windows はフラットモデル、といっているし。
>>710
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。
0722デフォルトの名無しさん
2012/06/24(日) 22:44:11.730723デフォルトの名無しさん
2012/06/24(日) 22:44:20.830724デフォルトの名無しさん
2012/06/24(日) 22:46:20.770725デフォルトの名無しさん
2012/06/24(日) 22:48:33.45>それだけpush命令行われてるのにバカじゃねえの??????
uyさんはとっととこれについて解説してくれよ
wktkして待ってるんだから
気になって眠れないよ
0726デフォルトの名無しさん
2012/06/24(日) 22:48:37.76>>710
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは滑稽なんですが。
では非論理的で説得力に欠ける、とでも言い換えておきましょうか。
>>716,721
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは非論理的であり説得力皆無なんですけれども。
つきあっているんだからモリタポくれ
0730デフォルトの名無しさん
2012/06/24(日) 22:59:17.660731uy
2012/06/24(日) 23:02:27.30二度とかみつかない事を薦める
http://myoga.web.fc2.com/prog/cpp/opti02.htm
キャッシュの動作の第2項
キャッシュ内容の更新 を読め
>キャッシュの更新で何をするのかというと、 今回触ったアドレス X のデータとその周辺のデータのコピーを L1 に作成するのです。
>周辺のデータというのは、大体数十バイトから百バイト程度のブロックになります。
>周辺のデータもまとめてコピーするのは、先程説明した「局所性」に拠って、 アドレス X に触った時には
>その周辺のアドレスのデータに触る確率も高いと期待されるからです。
そのサイトのここも重要
>スタック溢れにならなくても、スタックに巨大なデータを置くと、 スタック自体でキャッシュミスが起こったりして遅くなります。
つまり、無駄なでかいローカル変数があったらキャッシュミスが起こって遅くなるのです
つまり、ローカル変数を沢山定義すると遅くなるのです
ワカッタカナー
そうですか。ではこういうときは、どういう言葉がいいんでしょうね。難しいですね。
そんなもの、スタック上のローカル変数のみならず、普通の static な領域でも、malloc() でとってきたヒープでも起こることなんですけれども。
どんなメモリでも起こることを論拠に「ローカル変数を多数使うと遅い」と主張するのは非論理的で筋が通らないんですけれども。
0734デフォルトの名無しさん
2012/06/24(日) 23:05:13.500735デフォルトの名無しさん
2012/06/24(日) 23:07:42.20これについて解説してくれよ早く
0736片山博文MZボット ◆0lBZNi.Q7evd
2012/06/24(日) 23:08:10.500737デフォルトの名無しさん
2012/06/24(日) 23:09:56.87へぇ知らんかった
俺の国語辞典には載ってないな
>> ・ローカル変数を沢山使うと確保により時間が掛かると思っている
>スタック消費してんだから当たり前だろおおおおおおおおおおwwwwwwwwwwwwwwwww
>それだけpush命令行われてるのにバカじゃねえの??????
とローカル変数を push で確保すると思っていた(爆笑)ようですが、それが論破されるといろいろ極端な例を後付けして凌いだつもりになっているのですね。
そろそろ、普通に使う範囲での妥当なサイズのソース
>>700
http://codepad.org/gVm1Y9Ps
http://codepad.org/dwKs5LBd
で説明していただけませんかね。ruby 脳ではやっぱり無理でしょうかね?
0739デフォルトの名無しさん
2012/06/24(日) 23:17:36.250741uy
2012/06/24(日) 23:36:52.820742デフォルトの名無しさん
2012/06/24(日) 23:38:09.55○スレが荒れない
0743uy
2012/06/24(日) 23:43:01.17それくらいでは全く論破したことにもならないが
0744デフォルトの名無しさん
2012/06/24(日) 23:43:14.39引き際、確かにむずかしいですね。SCHEME餃子さんはうまくて感心しています。
0746デフォルトの名無しさん
2012/06/24(日) 23:44:44.53EUROまだー、ちんちん
0747デフォルトの名無しさん
2012/06/24(日) 23:47:38.380749uy
2012/06/24(日) 23:55:13.56お前らのような下級ゴミカスとは格が違う
0750デフォルトの名無しさん
2012/06/24(日) 23:57:06.830751デフォルトの名無しさん
2012/06/24(日) 23:59:12.82/ /
/三ミ} フ
r'"rニニ`〈
.| rニ~~` } そんなことより野球しようぜ!
j (_) /
_,.-‐‐‐-'ヽ. / ,A_ ヽ.
/,.--‐‐‐、 ヽ. / / | ヽ.
/ / /> ヽ ,..、ヽ / / | ヽ.
/‐┘/,.-、 ! | 6)/ / __| ヽ
!ニ=_"iO ヽ ヾ/ ./‐-'"i iZ }
!TOヽヽ、_ノ __ /|__ / { ヽ ヽヾZ /
ヽヽ_ノC /ン| L /___ヽ ヽヽ _>‐'"
ヽ (∠ン´| ヽ、_.ク _ ヽ、/
`ー/| ヽ、__ /_/ _ |
| ヽ、_. / _/ _|
0752デフォルトの名無しさん
2012/06/25(月) 00:03:40.580753デフォルトの名無しさん
2012/06/25(月) 00:28:28.040754デフォルトの名無しさん
2012/06/25(月) 00:29:27.31/ /
/三ミ} フ
r'"rニニ`〈
.| rニ~~` } バスケットはお好きですか?
j (_) /
_,.-‐‐‐-'ヽ. / ,A_ ヽ.
/,.--‐‐‐、 ヽ. / / | ヽ.
/ / /> ヽ ,..、ヽ / / | ヽ.
/‐┘/,.-、 ! | 6)/ / __| ヽ
!ニ=_"iO ヽ ヾ/ ./‐-'"i iZ }
!TOヽヽ、_ノ __ /|__ / { ヽ ヽヾZ /
ヽヽ_ノC /ン| L /___ヽ ヽヽ _>‐'"
ヽ (∠ン´| ヽ、_.ク _ ヽ、/
`ー/| ヽ、__ /_/ _ |
| ヽ、_. / _/ _|
0755デフォルトの名無しさん
2012/06/25(月) 04:18:14.160757デフォルトの名無しさん
2012/06/25(月) 05:22:06.620758デフォルトの名無しさん
2012/06/25(月) 08:18:23.740759uy
2012/06/25(月) 08:20:41.520760デフォルトの名無しさん
2012/06/25(月) 08:28:18.630761デフォルトの名無しさん
2012/06/25(月) 08:29:59.580762uy
2012/06/25(月) 08:30:23.72お前らのような下級ゴミカスとは格が違う
0763デフォルトの名無しさん
2012/06/25(月) 08:40:21.50早く仕事に戻ってください
0764デフォルトの名無しさん
2012/06/25(月) 10:15:22.44アホとバカが共鳴しあってるのか?
0765デフォルトの名無しさん
2012/06/25(月) 10:21:22.440766uy
2012/06/25(月) 10:26:35.110767デフォルトの名無しさん
2012/06/25(月) 10:28:30.20先頭末尾の両方から使えるようにすれば済む話
0768デフォルトの名無しさん
2012/06/25(月) 10:36:10.90:::::::::::::::::
:::::::::: ____
∧_∧ ||....___ |
( ´・ω・) .|| └ヾ::::| |
┌/::::::: l ||__/._/_|
| |:: |:::: | ┌━━ー┷┷┐
0769デフォルトの名無しさん
2012/06/25(月) 11:34:53.260770デフォルトの名無しさん
2012/06/25(月) 13:33:01.58どんな?
0771デフォルトの名無しさん
2012/06/25(月) 15:51:53.500772デフォルトの名無しさん
2012/06/25(月) 16:27:57.500773デフォルトの名無しさん
2012/06/25(月) 16:53:53.28int test[16][128];
ってやるのと
int *test
test = (int *)calloc(16*128, sizeof(int));
ってやるのどっちがいいですか?。
0774デフォルトの名無しさん
2012/06/25(月) 16:57:52.060775デフォルトの名無しさん
2012/06/25(月) 17:02:57.69int (*test)[128];
test=calloc(16*128, sizeof(int));
0776デフォルトの名無しさん
2012/06/25(月) 17:38:39.52その方がいいんですか?。
0777デフォルトの名無しさん
2012/06/25(月) 17:43:29.89R言語なりmathmaticaなりでやりゃあいいじゃん
FFTとかだろたぶん
0778デフォルトの名無しさん
2012/06/25(月) 17:45:07.38二次元配列と同じようにアクセスできる
0779デフォルトの名無しさん
2012/06/25(月) 17:48:22.170780デフォルトの名無しさん
2012/06/25(月) 17:49:25.95ただ *test は配列へのポインタだから添字と違い毎回アクセスされる可能性があるので
わずかに速度が遅いかも
0781デフォルトの名無しさん
2012/06/25(月) 17:52:19.63どうもありがとうございますm(__)m。
0782デフォルトの名無しさん
2012/06/25(月) 19:21:28.48いいの、いいの
お礼なんかいらないよ
0784デフォルトの名無しさん
2012/06/25(月) 19:27:22.290785デフォルトの名無しさん
2012/06/25(月) 19:33:59.450786デフォルトの名無しさん
2012/06/25(月) 19:47:35.000787デフォルトの名無しさん
2012/06/25(月) 20:27:04.190789デフォルトの名無しさん
2012/06/26(火) 00:44:51.460791デフォルトの名無しさん
2012/06/26(火) 02:51:27.77typedef は コンパイラが理解できる。
#define は C コンパイラにわたる前の前処理プログラム(c プリプロセッサ)だけが理解できる。
使い分けはいろいろサンプルをみたり自分で試してみたりしてみてください。私は typedef のご利益を、実はよくわかっていない。
0793デフォルトの名無しさん
2012/06/26(火) 03:25:23.240794デフォルトの名無しさん
2012/06/26(火) 03:39:29.600795デフォルトの名無しさん
2012/06/26(火) 03:51:16.450796デフォルトの名無しさん
2012/06/26(火) 07:24:33.48typedefは型名に別名をつけるようなもの。
だから宣言と同じ構文で識別子に当たる部分が型の別名になる。
#defineは単なる文字列置換だから、Cの文法では通らないようなこともできてしまう。
型Tの変数a, bの値を入れ替えるマクロ関数
T: 型名
#define SWAP(T, a, b) do{ T SWAP_tmp; SWAP_tmp = (a);(a) = (b); (b) = SWAP_tmp}while(0)
Cの関数では型を引数にはできないが、マクロ関数なら、引数に型を与えるように扱える。
そうは思わない派です。
(a + b)(c + d) で a + b = A とおいて、(a + b)(c + d) = A(c + d) = Ac + Ad, A をもどして (a + b)c + (a + b)d = ac + bc + ad + bd とかやらないように、
typdef struct { ... } *HogeP;
とするくらいだったら
struct Hoge *
を直接書いてあるほうがありがたい。あくまでひとつの意見ですが。
>>795
意識していませんでした。もしよろしければ例をくださりませんか。
0798デフォルトの名無しさん
2012/06/26(火) 08:40:22.92time_t size_t wchar_t とか
C++でSTL使うときに長ったらしいのを短くできるのはありがたい
0799デフォルトの名無しさん
2012/06/26(火) 09:15:16.400800デフォルトの名無しさん
2012/06/26(火) 10:14:58.810801デフォルトの名無しさん
2012/06/26(火) 10:25:26.74int*をtypedefしたらさらにややこしい
623 :デフォルトの名無しさん:2012/06/09(土) 13:20:15.63
いやそこは#define だろ
624 : ◆QZaw55cn4c :2012/06/09(土) 13:47:33.95
なんでもありの #define は避けれるのであれば避けたほうがいい。
625 :デフォルトの名無しさん:2012/06/09(土) 14:35:41.84
コテはアスペとわかっちゃいても
ヤッパむかつくな
626 : ◆QZaw55cn4c :2012/06/09(土) 15:12:12.59
>>625
コードをみせてくれ。話はそれからだ。
627 :デフォルトの名無しさん:2012/06/09(土) 15:46:21.13
ナッパむかつくわ
0802デフォルトの名無しさん
2012/06/26(火) 11:17:57.510803デフォルトの名無しさん
2012/06/26(火) 12:24:23.87>>797
structにしろenumにしろ、C++なら省略できるけどCだと省略できないから一手間省けるってことでしょ。
--
struct foo {...;}
struct foo bar; // typedefを使わない例
typedef struct {...;} foo_t;
foo_t bar; // typedefを使う例
--
const int や volatile int も int * 同様typedefできるけど、するべきじゃないと思うね。
サイズ情報を隠蔽するためにはしばしば使うけど。
--
#if SOME_ENVIRON
typedef double Float;
#else
typedef float Float;
#endif
Float foo = (Float) (1. /3);
--
0804デフォルトの名無しさん
2012/06/26(火) 12:27:01.86例えばLPCTSTRはポインタ
0805デフォルトの名無しさん
2012/06/26(火) 12:35:18.990806デフォルトの名無しさん
2012/06/26(火) 12:45:34.600807デフォルトの名無しさん
2012/06/26(火) 13:10:24.730808デフォルトの名無しさん
2012/06/26(火) 13:12:07.06上手くいきません。以下のどこが間違っているか教えてもらえますでしょうか?
合計も平均も0になってしまいます。
int ten[5], i = 0;
int sum = 0, ninzu = 5;
double avg;
printf("点数\n");
while (i < 5) {
printf ("%d人目 > ", i + 1);
scanf("%d", &ten[i]);
i++;
}
while (i < 5) {
sum += ten[i];
i++;
}
avg = (double)sum / ninzu;
printf("合計点: %d\n", sum);
printf("平均点: %f\n", avg);
return 0;
0810デフォルトの名無しさん
2012/06/26(火) 13:21:48.91TemplateのTだろ
マルチバイトならLPCSTR
UnicodeならLPCWSTR
0811デフォルトの名無しさん
2012/06/26(火) 13:27:21.15forを使えば直ぐに気付くミスなのに。
0812デフォルトの名無しさん
2012/06/26(火) 13:28:13.64ttp://ideone.com/Pj9KK
0813片山博文MZボット ◆0lBZNi.Q7evd
2012/06/26(火) 13:57:17.18不正解。TEXTのTでした。
0814デフォルトの名無しさん
2012/06/26(火) 14:37:13.670815809
2012/06/26(火) 14:43:55.99言われてみれば確かにその通りですね。
forなら(i=0,・・・)と書くので気付けたハズ。
iに数字が入ったままだったのですね。
>>812
ありがとうございます。助かりました。
これで無事に提出できます。
0816デフォルトの名無しさん
2012/06/26(火) 15:00:26.820818デフォルトの名無しさん
2012/06/26(火) 16:11:18.37っていつものことか
0819デフォルトの名無しさん
2012/06/26(火) 16:58:37.010820デフォルトの名無しさん
2012/06/26(火) 17:10:57.160821デフォルトの名無しさん
2012/06/26(火) 17:11:41.700822デフォルトの名無しさん
2012/06/26(火) 19:12:32.10最新スペックのパソコンに変えると速度は上がりますか?
0823デフォルトの名無しさん
2012/06/26(火) 19:30:29.720824デフォルトの名無しさん
2012/06/26(火) 19:34:05.57ボトルネック箇所次第
0825デフォルトの名無しさん
2012/06/26(火) 20:32:14.95例えば、『9』『99』『999』『9999』『99999』というように同じ数字だけで桁数を増やす計算式ってありますか?
一番簡単な方法があればご教授願います!
0826デフォルトの名無しさん
2012/06/26(火) 20:35:13.57x=x*10+x%10;
0827デフォルトの名無しさん
2012/06/26(火) 20:36:43.20http://ideone.com/HyiYB
0828デフォルトの名無しさん
2012/06/26(火) 20:44:38.42k*(10^(n+1)-1)/9
0829デフォルトの名無しさん
2012/06/26(火) 20:51:26.210830デフォルトの名無しさん
2012/06/26(火) 20:59:12.350831デフォルトの名無しさん
2012/06/26(火) 21:17:45.460832デフォルトの名無しさん
2012/06/26(火) 21:38:38.18どこが間違ってるのか本気で分からない…構造体です
struct camera{
float posx,posy,posz,eyex,eyey,eyez,dir,speed,range,size;
};
camera cam;
0833デフォルトの名無しさん
2012/06/26(火) 21:41:06.69って何だよ
されてないならいいじゃないか
0834デフォルトの名無しさん
2012/06/26(火) 21:41:06.87説明する気あんのかよ
ついでにC++はスレチ
0835uy
2012/06/26(火) 21:49:36.44x = 9
x*10 + x
これで済む話なのに
なんでこんなバカしかいねーんだこのスレ
0836デフォルトの名無しさん
2012/06/26(火) 21:56:23.360837デフォルトの名無しさん
2012/06/26(火) 22:13:50.01>x = 9
>x*10 + x
x = 88
x * 10 + x -> 968
0838デフォルトの名無しさん
2012/06/26(火) 22:33:13.33www
0839デフォルトの名無しさん
2012/06/26(火) 22:39:51.96kkk
0840デフォルトの名無しさん
2012/06/26(火) 22:44:48.220841デフォルトの名無しさん
2012/06/26(火) 22:47:35.660842デフォルトの名無しさん
2012/06/26(火) 22:51:49.19(C++ ではなく)C言語だと struct は省略できないよ
× camera cam;
○ struct camera cam;
0843デフォルトの名無しさん
2012/06/26(火) 23:00:46.860844uy
2012/06/26(火) 23:01:43.420845デフォルトの名無しさん
2012/06/26(火) 23:09:31.590846825
2012/06/26(火) 23:13:49.35何かいろいろと大変なことになっていますが、どれが一番良い方法なのでしょうか?
0847デフォルトの名無しさん
2012/06/26(火) 23:18:42.680848デフォルトの名無しさん
2012/06/26(火) 23:20:14.23いろいろ解釈できる質問しやがって
0849デフォルトの名無しさん
2012/06/26(火) 23:22:43.640850デフォルトの名無しさん
2012/06/26(火) 23:26:33.100851uy
2012/06/27(水) 00:17:47.01Cとかもういいから
さっさとruby使えよ
p ([9]*5666).join.to_i #=>99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
0852デフォルトの名無しさん
2012/06/27(水) 00:23:39.83スレチ消えろ
0853uy
2012/06/27(水) 00:32:26.36continue = [] ; first = true ; arguments = nil ; private_name = "private_" + name.to_s
alias_method private_name, name ; private private_name
proc = lambda do |*args|
if first ; first = false
while true
result = send(private_name, *args)
if result.equal? continue ; args = arguments
else ; first = true ; return result
end ; end
else ; arguments = args ; continue ; end ; end ; define_method name, proc ; end ; end
class A
def q x , n
n.times.map do | i |
f x , i
end.inject:+
end
def f x , n
return x if n == 0
f x * 10 , n - 1
end
tco :f
end
p A.new.q 5 , 3
あー、やっべつい末尾再帰で書いて最適化しちゃったわ
0854デフォルトの名無しさん
2012/06/27(水) 00:32:52.880855デフォルトの名無しさん
2012/06/27(水) 00:34:11.02スレチだバカ
0856デフォルトの名無しさん
2012/06/27(水) 00:34:58.750857デフォルトの名無しさん
2012/06/27(水) 00:41:56.390858デフォルトの名無しさん
2012/06/27(水) 02:38:17.00汚く書こうと思えばいくらでもできちゃう所で
そういう意味ではCに近い
0859uy
2012/06/27(水) 03:05:28.91時代遅れ時代遅れ時代遅れ時代遅れ
0860デフォルトの名無しさん
2012/06/27(水) 03:21:25.81プw
ruby... 2.0 になったら勉強しよう。そのときはいろいろご指導ください >uy さま
OS はいまだに C で記述するのが一般的だというのに、それでも C が時代遅れと主張するのでしょうか?
というか C の理解なくして他の言語が理解できるのでしょうか。あー lisp は許す。
0863uy
2012/06/27(水) 05:23:06.510864デフォルトの名無しさん
2012/06/27(水) 08:07:36.36○uyのようなゴミカスには教える能力が無い
0865uy
2012/06/27(水) 08:14:38.28お前らのような下級ゴミカスとは格が違う
0866デフォルトの名無しさん
2012/06/27(水) 09:02:13.45世界中で受け入れ拒否。
このスレでも受け入れ拒否だからな。
0867デフォルトの名無しさん
2012/06/27(水) 09:25:57.240868デフォルトの名無しさん
2012/06/27(水) 09:38:25.10配列の大きさを指定しているくせに違う大きさの配列リテラル?で初期化するのは良くないとは分かっていますが、気になって。
0869デフォルトの名無しさん
2012/06/27(水) 09:54:43.10最初のLLVMを内部で出力するのに時間がかかるんじゃないかな
clang test.c -S -emit-llvm -o - で最適化無しのLLVMコードを見ると山ほどの
getelementptr [1048575 x i8]* %5, i32 0, i32 数字
が見れる
関数内での配列はとりあえずインライン化してみる仕様なのかも
0870デフォルトの名無しさん
2012/06/27(水) 12:26:05.900871デフォルトの名無しさん
2012/06/27(水) 12:27:52.260872デフォルトの名無しさん
2012/06/27(水) 12:29:01.39お前はおっちゃんだ!
0873デフォルトの名無しさん
2012/06/27(水) 19:24:21.87int i[a];
だとエラーが出るので
#define a 10
int i[a];
にすると、違うソースファイルで
externが使えないので、違うソースファイルでも
#define a 10
int j[a];
としたのですが、これだと片方のソースファイルの数字を書き換えれば
もう片方のソースファイルの数字も書き換えないといけなくて、
片方のソースファイルの数字だけを書き換えればいいように
したいのですが、どうしたらいいですか?
0874デフォルトの名無しさん
2012/06/27(水) 19:32:37.37#define a 10
する
fugafuga.c と hagehage.c の両方で
#include "hogehoge.h"
すれば、変更はhogehoge.hだけで済む
0875デフォルトの名無しさん
2012/06/27(水) 19:34:11.98#ifdef MAIN
#define EXTERN
#else
#define EXTERN extern
#endif
#define a 10
EXTERN int i[a];
// main.c
#define MAIN
#include "hoge.h"
i[0] = 10;
// sub.c
#include "hoge.h"
printf("%d\n", i[0]);
0876デフォルトの名無しさん
2012/06/27(水) 19:37:07.82C以前に日本語の学習から始めてみたらいかがかな。
0877デフォルトの名無しさん
2012/06/27(水) 19:53:46.60>>875
できました。ありがとうございました
0878デフォルトの名無しさん
2012/06/27(水) 20:24:35.930879デフォルトの名無しさん
2012/06/27(水) 20:29:54.440882デフォルトの名無しさん
2012/06/27(水) 21:39:31.79グローバルな配列宣言ではなく
関数の引数で渡すことを考えてみることもやってみませう
0883デフォルトの名無しさん
2012/06/28(木) 00:01:17.030884uy
2012/06/28(木) 00:16:40.59↓以下ドヤ顔で初心者に長文レスかますC言語スレ古参たち
0885デフォルトの名無しさん
2012/06/28(木) 00:19:36.00┗┛
0886デフォルトの名無しさん
2012/06/28(木) 00:22:22.09その上で疑問が有るなら疑問点を限定しろ
0887デフォルトの名無しさん
2012/06/28(木) 00:25:26.12言葉覚えたから、動くものが作れるってわけじゃないんだよ
0889デフォルトの名無しさん
2012/06/28(木) 02:44:33.80B「ヒントは?」
A「年齢の積は36」
B「もう少しヒントを」
A「年齢の和はあなたの年齢と同じ」
B「う〜ん、もう1つだけ。年齢が一番上の子の名前は?」
A「Cだよ」
B「OK、それで分かった」
さて、3人の子供の年齢は?
0890デフォルトの名無しさん
2012/06/28(木) 02:45:49.00ttp://networkprogramming.blog18.fc2.com/blog-entry-7.html
ttp://www9.plala.or.jp/sgwr-t/c/sec12.html
0891デフォルトの名無しさん
2012/06/28(木) 02:53:01.73明日提出の課題がやばいんだが…
0892uy
2012/06/28(木) 02:56:05.710893デフォルトの名無しさん
2012/06/28(木) 02:58:44.602,2,9
0894デフォルトの名無しさん
2012/06/28(木) 02:59:22.033万円でやるよ
0895デフォルトの名無しさん
2012/06/28(木) 07:55:47.630896デフォルトの名無しさん
2012/06/28(木) 08:06:57.260897デフォルトの名無しさん
2012/06/28(木) 14:14:56.080898デフォルトの名無しさん
2012/06/28(木) 14:18:17.620899uy
2012/06/28(木) 14:27:03.12その頃からメタプログラミングは出来ていた
コードジェネレータ(笑)をperlで5分でかいて、Cソースコード出力
そこからは一問あたり20秒以内で
後半のほうにじゃんけんゲームやスゴロクゲームをCUIで作れっていうのあったけど
それらも1個、数分以内に作って1時間でクリアした
あれは楽しかったな
スクリプト言語はこうやって使うんだよ
素でCのソース書いてる奴には絶対に出せない効率
0900デフォルトの名無しさん
2012/06/28(木) 14:43:01.650901デフォルトの名無しさん
2012/06/28(木) 14:48:38.84int *test[128];ってやるとエラーが出たんですけど、どういう違いがあるんですか?。
0902デフォルトの名無しさん
2012/06/28(木) 14:58:26.130903uy
2012/06/28(木) 15:01:35.08そんなもん覚えても意味ない
理由は演算子の優先順位
ポインタの配列ではなく
配列のポインタになろうとして失敗してる
これで意味不明だったらお前も初心者だから俺に謝れよ
0904デフォルトの名無しさん
2012/06/28(木) 15:15:27.380905デフォルトの名無しさん
2012/06/28(木) 15:45:15.36逆
0906デフォルトの名無しさん
2012/06/28(木) 16:15:14.730907デフォルトの名無しさん
2012/06/28(木) 16:22:37.800908デフォルトの名無しさん
2012/06/28(木) 16:40:06.420909デフォルトの名無しさん
2012/06/28(木) 17:19:08.26効率の悪いバカの言うことはちがうなw
0911デフォルトの名無しさん
2012/06/28(木) 18:09:26.62いえいえ
0913デフォルトの名無しさん
2012/06/28(木) 18:44:38.680914デフォルトの名無しさん
2012/06/28(木) 19:46:53.39演算子の優先順位じぇねーよ。嘘教えるなバカ
0916デフォルトの名無しさん
2012/06/28(木) 20:38:16.82int *test[128]; ポインタの配列
>>901は下にして上手くいかないんだから、配列のポインタをポインタの配列にして失敗してる
0917デフォルトの名無しさん
2012/06/28(木) 20:45:51.560918デフォルトの名無しさん
2012/06/28(木) 20:48:57.53uyがプログラマになろうとして失敗してる とか
uyが普通の社会人になろうとして失敗してる とか
uyがあのコに気付いてもらえる男にry とか。
int (*test)[128]だとtest変数はintが128コある配列へのひとつのポインタだからcallocした戻り値を代入できるけど
int *test[128]だとintを指すポインタが128コある配列なので、
callocした戻り値をtestのどれに代入するかわかりません、ってことです。
0919デフォルトの名無しさん
2012/06/28(木) 20:59:41.77>int *test[128]だとintを指すポインタが128コある配列なので、
>callocした戻り値をtestのどれに代入するかわかりません、ってことです。
ん?「配列には代入できないからエラー」でしょ。
0920デフォルトの名無しさん
2012/06/28(木) 21:01:52.310921デフォルトの名無しさん
2012/06/28(木) 21:07:46.990922デフォルトの名無しさん
2012/06/28(木) 21:10:28.190923デフォルトの名無しさん
2012/06/28(木) 21:19:02.420924デフォルトの名無しさん
2012/06/28(木) 21:58:39.56int *test[128]は int *test([128]) (エラーだけど意味を示したい) のように解釈される
配列演算子が逆参照演算子よりも優先度が高いためだ
CはAPL、C++についで3番目に演算子が多い
APLは演算子がCの倍あり、優先順位を決めるのを諦めてしまって評価順序を全部
左から右にしてしまった
しかしCは優先順位があり、しかも不自然な順位だと思われるものもあるためなかなか
覚えにくい
印刷した紙を手元に置いておくか、カッコで囲む必要がある
0925デフォルトの名無しさん
2012/06/28(木) 21:59:29.22int *(test[128])
0926デフォルトの名無しさん
2012/06/28(木) 22:12:56.70だから演算子の優先順位じゃないって。
演算子は式に関するもの。
int *test[128]; (あるいはint (*test)[128];も)は宣言。
0927デフォルトの名無しさん
2012/06/28(木) 22:24:10.88演算子の優先順位じゃないよ
今後恥をかかないようにしっかり覚えとけクズ
0928デフォルトの名無しさん
2012/06/28(木) 22:36:39.560929デフォルトの名無しさん
2012/06/28(木) 22:45:25.270930デフォルトの名無しさん
2012/06/28(木) 22:48:13.840931uy
2012/06/29(金) 01:30:09.95特例みたいな抜け道の書き方が用意されているだけで
コンパイラくらい作ってからわめけカス
0933デフォルトの名無しさん
2012/06/29(金) 01:41:46.29で作成したtest.oとtest2.oをリンクしたいのですが上手く行きません。
純粋に「gcc -nostdlib test.o test2.o」とやると warning: cannot find entry symbol _start; defaulting to 0000000000400144のような警告はが出ます。
どのようにやればいいですか?
0934デフォルトの名無しさん
2012/06/29(金) 01:47:45.602つのオブジェクトを結合して1つのオブジェクトにしたいと言う事です。
よろしくおねがいします。
0935デフォルトの名無しさん
2012/06/29(金) 01:52:38.30特例でもなんでもないよな?
0936デフォルトの名無しさん
2012/06/29(金) 01:57:19.23-nostdlib
とってみるとかせんの?
0937デフォルトの名無しさん
2012/06/29(金) 01:57:31.070938uy
2012/06/29(金) 03:58:41.940939デフォルトの名無しさん
2012/06/29(金) 04:40:49.55で、何が?
0940デフォルトの名無しさん
2012/06/29(金) 07:13:31.22だからさっさと消えろゴミクズ
0941デフォルトの名無しさん
2012/06/29(金) 10:35:04.490942デフォルトの名無しさん
2012/06/29(金) 11:53:59.83リンカは普通、結合されたオブジェクトをオブジェクトとして出力することはしない。
つまり、gcc -nostdlib test.o test2.oではオブジェクトを結合して実行モジュールにしようとしている。
そして恐らくは、test.oにもtest2.oにもmain()がないので警告されている。
全体、何をしたいんだ?
0943デフォルトの名無しさん
2012/06/29(金) 12:15:05.040944942
2012/06/29(金) 12:35:48.45まぁ、本質は変わらないけど。
便宜上、オブジェクト(ファイル)を纏めたいならar(アーカイバ)で纏めればいいんじゃないのか?
普通のリンカなら、できたアーカイブファイルを指定するだけでtest.oとtest2.oをリンクできるか試みてくれる。
つーか、この辺りの話はWindowsに関係ないし、環境依存OKのスレ向きだなぁ。
0945デフォルトの名無しさん
2012/06/29(金) 13:06:54.26そいつがmain()を呼び出してくれる
0946デフォルトの名無しさん
2012/06/29(金) 13:48:35.07gcc -Wl,-rで上手く行った。
用途はちょっとな。作りたいものがあるだけ。
0947デフォルトの名無しさん
2012/06/29(金) 14:28:47.300948デフォルトの名無しさん
2012/06/29(金) 14:31:37.25つまり ld -r
0949デフォルトの名無しさん
2012/06/29(金) 14:36:04.02,,r::::::::::::〈:::::::::) ィ::::::ヽ
〃::::::::::::;r‐''´:::::::::::::::::::::ヽ::ノ
,'::;'::::::::::::::/::::::::::::::::::::::::::::::::::::
l::::::::::::::::::l::::::::::●::::::::::::::●:::::ji
|::::::::::::::::::、::::::::::::::( _●_)::::::,j:l クマー!
}::::::::::::::::::::ゝ、::::::::::|∪|_ノ::;!
. {::::::::::::::::::::::::::::`='=::ヽノ:::::/
';::::::::::::ト、::::::::::::::i^i::::::::::::/
`ー--' ヽ:::::::::::l l;;;;::::ノ
【ラッキーレス】
このレスを見た人はコピペでもいいので
10分以内に3つのスレへ貼り付けてください。
そうすれば14日後好きな人から告白されるわ宝くじは当たるわ
出世しまくるわ体の悪い所全部治るわでえらい事です
0950デフォルトの名無しさん
2012/06/29(金) 15:48:10.51extern をつける場合と、つけない場合で、何か意味的に違いがありますか?
0951デフォルトの名無しさん
2012/06/29(金) 15:55:12.74つけると その変数の本体がいないとする
最終的には複数のソースで唯一の変数を作らなきゃいけないので
どのソースに本体が居ます 他はそこを参照してくださいな という制御
0952デフォルトの名無しさん
2012/06/29(金) 16:02:49.38理解しました、ありがとうございます
0953デフォルトの名無しさん
2012/06/29(金) 17:39:33.38一つのソース内で、
extern int a; //どこかにあるよ
int a; //ここに実体
これはOK?
0954デフォルトの名無しさん
2012/06/29(金) 17:41:40.69OK
0955デフォルトの名無しさん
2012/06/29(金) 18:44:57.71void test() {
x = 123;
}
int x;
これとか
0956デフォルトの名無しさん
2012/06/29(金) 18:49:25.79実態がどっちかというのは決まってない。
0957デフォルトの名無しさん
2012/06/29(金) 19:12:24.77グローバル変数の宣言では要らないんだっけ?
逆だった?
extern なんていらない子。使っていいことなどない。
0960デフォルトの名無しさん
2012/06/29(金) 19:28:29.02よっ、ゴミカス
0961デフォルトの名無しさん
2012/06/29(金) 19:29:21.720962デフォルトの名無しさん
2012/06/29(金) 19:41:01.730963デフォルトの名無しさん
2012/06/29(金) 19:44:37.59{
extern void hage(void);
extern int foo;
hage();
foo++;
}
0964デフォルトの名無しさん
2012/06/29(金) 21:38:41.090965デフォルトの名無しさん
2012/06/29(金) 21:41:08.460966デフォルトの名無しさん
2012/06/30(土) 04:39:18.620967デフォルトの名無しさん
2012/06/30(土) 10:42:18.55extern はグローバル変数の外部宣言では必要だけど
関数のプロトタイプでは要らない
QZはファイル分割やヘッダーファイル知らないのか?
0968uy
2012/06/30(土) 12:38:15.590969デフォルトの名無しさん
2012/06/30(土) 12:47:34.130970デフォルトの名無しさん
2012/06/30(土) 13:26:11.58∩―‐、
/ (゚) 、_ `ヽ
/ ( ● (゚) |つ
| /(入__ノ ミ 人ノ゙ ⌒ヽ 彡ミ彡)彡ミ彡 +:;'
、 (_/ ノ ,,..、;;:〜''"゙゙ ) 从 ミ彡ミミ彡ミ :;'
\___ ノ゙ / ̄ ̄ヽ_,,..、;;:〜-:''"゙⌒゙ 彡 ,, ⌒ヽ::::/彡:: :::ミゞ::::从从
i i⌒\__ノ ノ::::::゙:゙ '"゙ /: : : : ::;彡ミ: ;:: ; : : : :ゝミ)
ヽヽ ヽ / / `゙⌒`゙"''〜-、:;;,_ ) ミ{:: :ミ: :ノ --‐' 、_\:: ミ:}
)) )-─/ / ⌒`゙"''〜-、,, ,,,彡⌒''〜 {:: : :ノ ,_;:;:;ノ、 ェェ ヾ: :::}
// / // / "⌒''〜" l: :ノ /二―-、 |: ::ノ
((__ノ // / | //  ̄7/ /::ノ
// ノ 〉(_二─-┘{/
|_|_/ /、//|  ̄ ̄ヽ
/ // |//\ 〉
/ // /\ /
↑
ニート uy
0971デフォルトの名無しさん
2012/06/30(土) 15:42:23.79そういう下品なのはRubyスレでやってくれないかな
0972デフォルトの名無しさん
2012/06/30(土) 15:47:08.780973デフォルトの名無しさん
2012/06/30(土) 19:02:06.41>extern はグローバル変数の外部宣言では必要だけど
ところが、外部変数であっても条件つきで extern なしでリンクが通る場合がある。
つ http://pc12.2ch.net/test/read.cgi/tech/1201153965/139
"tentative definition"
私見だがこれはリンカ依存。
これが結構便利で頻繁に使わせてもらっている。
0975デフォルトの名無しさん
2012/06/30(土) 19:52:54.64頻繁にw使ってるとこを具体的に聞きたいもんだが。
>リンカの都合でexternを省略できるのって、そんなもんどこが便利なんだ?
「どんな場合でも extern が省略できないリンカ」というのはみたことがない、.obj, a.out, coff, elf どの時代でも。
0977デフォルトの名無しさん
2012/06/30(土) 20:28:49.52で、どこが便利なの?
0978デフォルトの名無しさん
2012/06/30(土) 20:32:51.440979デフォルトの名無しさん
2012/06/30(土) 20:34:01.92特定のひとつのソースの外部変数は extern 抜きで書き、他のは全部 extern をつける、とかめんどくさいことを特に意識しなくてもいいこと。
外部変数を .h に書いておいて、その外部変数使う .c でのみその .h をインクルードすればいいだけ、というのもある種のスコーピングになりうる。
初期化はちゃんとコードに書かないといけないけれども、これはある意味必然だ。
ま、そのとーり。
0982デフォルトの名無しさん
2012/06/30(土) 20:48:08.05同様の趣旨で MASM6 には EXTERNDEF ディレクティブっていうのがあったんだよね。
0984デフォルトの名無しさん
2012/06/30(土) 21:00:42.95main()
{
struct A __i686;
__i686.a = 686;
}
上記のようなコードがgccだとエラーになる場合があるので困る。
glibcのソースコード中にもこれ由来の問題が昔からあるのだが、いまだに治ってない。gcc,glibcどちらの問題なのか?そんなウルリッヒドレッパー。
0985デフォルトの名無しさん
2012/06/30(土) 21:04:39.16http://codepad.org/hGhMhuxO
__686 ってgcc特有のキーワードっぽいね、よくわからないけど。
0987デフォルトの名無しさん
2012/06/30(土) 21:13:54.07>ttp://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.5.4.html
0988デフォルトの名無しさん
2012/06/30(土) 21:15:53.50普通にコンパイルするだけでも、ソースコードに #define __i686 1 が頭に追加されてる状態。このマクロを利用してCPU最適化コードへの#ifdef分岐に使ったりできるのだが、
弊害として変数名などに__i686を使った場合に、マクロで1に置き換えられてしまうので、当然エラーとなる。
これが原因で最新のglibcがビルドできない。
しかも昔からある問題らしいhttp://www.gcd.org/blog/2009/10/179/
__i686なんてよくある名前を組み込みマクロにしてるgccはどうかしてる。
0989デフォルトの名無しさん
2012/06/30(土) 21:17:53.44gccのverが古くねえか?
0990デフォルトの名無しさん
2012/06/30(土) 21:18:43.80glibcのverが古くねえか?
0991デフォルトの名無しさん
2012/06/30(土) 21:20:08.57プリプロセッサ制御用コマンドラインオプション -U ではだめなのでしょうか?めんどくさそう。
0993デフォルトの名無しさん
2012/06/30(土) 21:23:39.42どちらも協調性に難ありまくりな作者が書いてるコードだからな
0994デフォルトの名無しさん
2012/06/30(土) 21:24:07.180995デフォルトの名無しさん
2012/06/30(土) 21:26:18.710996デフォルトの名無しさん
2012/06/30(土) 21:38:08.39http://toro.2ch.net/test/read.cgi/tech/1341059858/
C言語なら俺に聞け(入門編)Part 103
http://toro.2ch.net/test/read.cgi/tech/1341059858/
0998デフォルトの名無しさん
2012/06/30(土) 21:39:26.09乙
1000デフォルトの名無しさん
2012/06/30(土) 21:41:57.2810011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。