C言語なら俺に聞け(入門編)Part 121

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 120
http://toro.2ch.net/test/read.cgi/tech/1380277825/
★過去スレ
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++の宿題片付けます 165代目
http://toro.2ch.net/test/read.cgi/tech/1370255305/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
2デフォルトの名無しさん:2013/10/20(日) 11:40:36.98
< `∀´>ニダー
3デフォルトの名無しさん:2013/10/20(日) 11:41:24.19
前スレ>>988が気になって眠れないんですがどっちなのでしょうか?
4デフォルトの名無しさん:2013/10/20(日) 11:52:31.38
>>1
Part 1乙1
5デフォルトの名無しさん:2013/10/20(日) 11:58:10.14
>>1
Part 11x11
6デフォルトの名無しさん:2013/10/20(日) 12:47:58.93
#include <stdio.h>
int main(int argc, char **argv)
{
while (*argv) {
while (**argv) {
printf("%c", **argv)
(*argv)++;
}
putchar('\n');
argv++;
}
return 0;
}

ポインタを学習するのに最適なコード
gcc -S test.cでおk

ポインタ厨滅殺のため、テンプレ追加でオナシャス!!!
7デフォルトの名無しさん:2013/10/20(日) 13:38:09.09
>>6
argvって最後にNULL入るんだな。初めて知った。
8デフォルトの名無しさん:2013/10/20(日) 13:40:49.17
>>3

>>6に対して
987 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 19:08:21.67
>>984
こうやって関係あるな
(*argv)++;

*argv++;
との違い

988 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 19:23:42.68
それはインクリメントされるモノまで違う

990 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 19:31:56.27
インクレメントされるのはアドレスですが?

996 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 20:01:58.97
>>988
マジかよこんな奴でもマやってられるのかよ
俺なんかマにもってこいだな
Googleあたりやとってくれないかな

998 名前:デフォルトの名無しさん[] 投稿日:2013/09/27(金) 20:08:54.09
>>990
本当か?

999 名前:デフォルトの名無しさん[sage] 投稿日:2013/09/27(金) 20:19:08.65
>>996
この馬鹿何いってんの?
9デフォルトの名無しさん:2013/10/20(日) 13:45:42.89
>>6
以前、バグってるコードを調べたら、これみたいに引数の数をargcじゃなくて
*argvがnullかどうかで調べてたんだよな。

argcを使わなくて引数の終わりをチェックするなんて、そのコードと>>6でしか
見たことないんだけど、どうやって思いつくんだろう。

昔はそうやって書いてたとか?
10デフォルトの名無しさん:2013/10/20(日) 13:47:57.53
>>9
c89の仕様
11デフォルトの名無しさん:2013/10/20(日) 13:50:34.44
>>10
Solarisだと、NULLが入ってなくてバグってたんだけど環境依存じゃなくてCの規格なのかね。
12デフォルトの名無しさん:2013/10/20(日) 13:52:25.49
>>6
発想は素晴らしい、がコードは糞
13デフォルトの名無しさん:2013/10/20(日) 13:53:39.81
>>8
で、どっちが正しいの?><
14デフォルトの名無しさん:2013/10/20(日) 13:53:41.61
なんでコピペしてんだ?
15デフォルトの名無しさん:2013/10/20(日) 13:59:14.67
プログラミング言語C 第2版 P140
標準規格では・・・argv[argc]はヌル・ポインタであることが要求される。
16デフォルトの名無しさん:2013/10/20(日) 14:26:31.03
>>1
C/C++の宿題片付けます 166代目
http://toro.2ch.net/test/read.cgi/tech/1381909900/
17デフォルトの名無しさん:2013/10/20(日) 16:43:08.51
紛らわしいんでこうすれば*(argv++)
18デフォルトの名無しさん:2013/10/21(月) 21:51:13.35
hogeは禁止します
19デフォルトの名無しさん:2013/10/22(火) 14:31:57.51
hoge書いた奴は質問者だろうが回答者だろうが袋叩きでいいと思う。
20デフォルトの名無しさん:2013/10/22(火) 18:52:10.87
int hage,hige,huge,hege,hige;
21デフォルトの名無しさん:2013/10/22(火) 20:06:09.25
自治厨乙
void hogehoge(const char* hoge)
22デフォルトの名無しさん:2013/10/22(火) 21:27:29.63
やっぱりhoge厨って荒らしなんだな
>>21で証明された
23デフォルトの名無しさん:2013/10/23(水) 05:31:25.50
サイズが64bitより大きい変数を作りたいのですが
やっぱりCPU(OS?)が対応していないと無理ですかね
24デフォルトの名無しさん:2013/10/23(水) 07:45:18.50
多倍長とか任意精度演算では嫌ならそうかもな
25デフォルトの名無しさん:2013/10/23(水) 09:07:06.92
32bit整数を3個以上詰め込んだ構造体の変数は64bitより大きい
double _Complexな変数も多分64bitより大きい
26デフォルトの名無しさん:2013/10/23(水) 10:17:05.17
gccやlccなら__int128使える
27デフォルトの名無しさん:2013/10/23(水) 14:45:13.25
bool fg1[128]=0
bool fg2[128];

memset(fg2,1,sizeof(fg2));

fg2 &= fg1;

みたいにビット演算出来るようにしたいけど
やっぱりfor分で回さないといけないでしょうか?
28デフォルトの名無しさん:2013/10/23(水) 16:30:27.69
c++のbitsetなら
29デフォルトの名無しさん:2013/10/23(水) 17:01:00.67
おい、自治厨、C++の話題はいいんかい?
30デフォルトの名無しさん:2013/10/23(水) 17:24:01.32
c++の質問がだめなだけ
31デフォルトの名無しさん:2013/10/23(水) 18:05:05.86
C99にはboolなんてあるのね
中身はintか
32デフォルトの名無しさん:2013/10/23(水) 19:18:55.87
>中身はintか
あほ
33デフォルトの名無しさん:2013/10/23(水) 20:36:10.67
> 中身はintか
????
34デフォルトの名無しさん:2013/10/23(水) 20:55:39.67
処理系依存だけど普通はcharじゃない
35デフォルトの名無しさん:2013/10/23(水) 21:31:30.65
sizeof(bool)はいくらだね?
36デフォルトの名無しさん:2013/10/23(水) 21:52:50.54
gccで試したら1だったよ
37デフォルトの名無しさん:2013/10/23(水) 22:41:01.45
じゃあチャーじゃん
38デフォルトの名無しさん:2013/10/23(水) 22:41:53.92
チャー?
一瞬何のことかわからなかったは
charはキャラだろjk
39デフォルトの名無しさん:2013/10/23(水) 22:44:56.20
俺はチャーだが
40デフォルトの名無しさん:2013/10/23(水) 22:45:40.84
俺も
41デフォルトの名無しさん:2013/10/23(水) 22:47:22.11
俺も
42デフォルトの名無しさん:2013/10/23(水) 22:47:23.29
赤い彗星
43デフォルトの名無しさん:2013/10/23(水) 22:54:58.82
>>42
それはシャアだろ
44デフォルトの名無しさん:2013/10/23(水) 23:18:28.81
45デフォルトの名無しさん:2013/10/24(木) 10:58:54.33
チャラクタ型とか言ってるんだ。へぇ
46デフォルトの名無しさん:2013/10/24(木) 11:16:35.11
>>45
え?誰もそう言ってないけど
47デフォルトの名無しさん:2013/10/24(木) 13:19:02.95
俺もチャー
48デフォルトの名無しさん:2013/10/24(木) 13:38:33.59
チャーだな
キャラ型とか言ってる人見たことない
49デフォルトの名無しさん:2013/10/24(木) 13:41:00.15
(jkとか古いネットスラング使ってる時点で察してあげなよ…)
50デフォルトの名無しさん:2013/10/24(木) 14:08:40.52
charaならキャラと読むが
charだとチャーだな
51デフォルトの名無しさん:2013/10/24(木) 14:47:48.02
char aznable;
52デフォルトの名無しさん:2013/10/24(木) 15:11:33.84
redhood chacha
53デフォルトの名無しさん:2013/10/24(木) 17:59:00.45
char is_a_guitarilist
54デフォルトの名無しさん:2013/10/24(木) 18:11:48.10
>>49
釣られんなよw
55デフォルトの名無しさん:2013/10/24(木) 18:14:43.62
百済ないスレw
チャーやキャラなら俺に聞けのほうがいいんじゃないの?w
56デフォルトの名無しさん:2013/10/24(木) 20:46:56.32
でintは?
57デフォルトの名無しさん:2013/10/24(木) 20:48:48.13
intel inside
58デフォルトの名無しさん:2013/10/24(木) 21:18:54.41
イント
59デフォルトの名無しさん:2013/10/24(木) 22:14:43.44
foreach (var foo int
って勢い余りがち
60デフォルトの名無しさん:2013/10/24(木) 22:39:13.01
ある構造体配列に学籍番号、名前、点数etc…を読み込んだのですが、名前をキーボードから入力し、構造体配列にその名前があれば関連データを全て表示させるにはどうすればいいでしょうか?
61デフォルトの名無しさん:2013/10/24(木) 22:43:30.35
>>60
そのようにプログラムを書けば宜しいかと。
62デフォルトの名無しさん:2013/10/24(木) 22:51:32.73
>>61
どのようなプログラムを書けばいいかわかりません
63デフォルトの名無しさん:2013/10/24(木) 22:53:50.46
そういうのはSQLが簡単なのにCでやるの?
select * from atable where name = 'john'
64デフォルトの名無しさん:2013/10/24(木) 22:56:47.36
授業での課題なんです…
65デフォルトの名無しさん:2013/10/24(木) 23:16:35.53
>>60
出来たところまでを http://codepad.org/http://ideone.com/ に貼れ、続きを書いてやる
66デフォルトの名無しさん:2013/10/24(木) 23:21:13.92
うんしぐねどちゃーって言ってる女の子がいて萌えた
67デフォルトの名無しさん:2013/10/24(木) 23:21:20.51
>>64みたいに学校の先生に聞かずに
親が払ってる学費をドブに捨てる行為は何が楽しいんだろうと常々思う
68デフォルトの名無しさん:2013/10/24(木) 23:24:13.34
多分教科書に書いてあるよ
69デフォルトの名無しさん:2013/10/24(木) 23:54:15.99
>>67
親が憎いから間接的にでさえ関わりたくないんだよ。
学校の教員だと学費を通して間接的に親と関わることになる。
それを避けたいから他人に聞いてるんだと思われる。
70デフォルトの名無しさん:2013/10/25(金) 00:15:23.44
課題のやり方を聞いて教える教員はいないですし、まだ習ってない範囲です
いくら調べてもピンとくるものがありませんでした
答えを丸々ではなくヒントだけでも教えてもらえればと思ったのですが
71デフォルトの名無しさん:2013/10/25(金) 00:20:59.19
>>70
#include <string.h> して、
bufに画面入力、学生データをdataとすると
比較は
if (strcmp(buf, data[i].namae) == 0)
72片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/25(金) 00:22:17.88
forループとint型変数で構造体配列の要素にアクセスし、strcmp関数とif文で名前文字列を比較し、
名前が一致すれば、そのアドレスを、構造体の情報を表示する関数に引数として渡す。
73デフォルトの名無しさん:2013/10/25(金) 00:25:35.76
自分で分かるところまで、まずコードを書いてみる
74デフォルトの名無しさん:2013/10/25(金) 00:45:24.21
75デフォルトの名無しさん:2013/10/25(金) 00:56:06.78
回答ありがとうございます。
strampをつかえばいいんですね。リニアサーチという言葉に惑わされていました

結果は比較自体は上手くいったのですが、そもそもファイルを構造体に読み込めていませんでした
76デフォルトの名無しさん:2013/10/25(金) 06:21:02.61
はじめから自分で書く気なんてないんだろw
大人しく宿題スレに逝っておけ。
77デフォルトの名無しさん:2013/10/25(金) 10:37:45.27
>>70
いいから課題出した教員に聞けよ
それがあいつらの仕事なんだから
78デフォルトの名無しさん:2013/10/25(金) 12:15:59.83
だから親が毎日毎日働いてなんとか捻出して払った学費をドブに捨てるのが楽しみなんだって
79デフォルトの名無しさん:2013/10/25(金) 12:27:28.80
お勉強しかできない高学歴ニートよりはマシじゃね
80デフォルトの名無しさん:2013/10/25(金) 12:34:12.45
まだ習ってない範囲やってったら目つけられるで
81デフォルトの名無しさん:2013/10/25(金) 13:48:17.86
>>80
碌な教員の居ない所は大変だな。
82デフォルトの名無しさん:2013/10/25(金) 15:57:27.66
>課題のやり方を聞いて教える教員はいないですし
結局こうなんだよ
2chではヒントでもとか言ってるけど、教員にヒントを聞く気はないんだよ
習ってないところなら尚更ヒントはくれる
83デフォルトの名無しさん:2013/10/25(金) 21:45:04.37
組み込みって今じゃほとんどverilogって本当?
84デフォルトの名無しさん:2013/10/25(金) 21:50:09.79
大学の教員が教えるわけないだろw
ここだけは学生を擁護しとくわ
85デフォルトの名無しさん:2013/10/25(金) 22:05:57.66
情報科卒の情弱はverilogなんか使わないよ
電子科・電気科卒のやつらがverilogを使って回路設計する
情報科卒の情弱はハード屋の下請けの奴隷にすぎない
86デフォルトの名無しさん:2013/10/25(金) 22:48:28.18
>>85
上下関係はないよ
縦割りすぎて互いに無知なだけ
87デフォルトの名無しさん:2013/10/26(土) 01:53:23.09
verilogよいよね
情報専攻はデジタル回路くらい勉強すべき
新入社員はハードの知識がなさすぎる
88デフォルトの名無しさん:2013/10/26(土) 02:27:51.74
情報選好はゴミ
89デフォルトの名無しさん:2013/10/26(土) 03:41:59.60
褒めんなや
90デフォルトの名無しさん:2013/10/26(土) 08:15:59.61
分別すればゴミも資源に
91デフォルトの名無しさん:2013/10/26(土) 09:20:11.31
>>85
VHDL は?
SFL()は?
92デフォルトの名無しさん:2013/10/26(土) 09:53:12.92
>>84
たいていそれとなくヒントをくれてるはず
それに気付かないやつはそれまで
93デフォルトの名無しさん:2013/10/26(土) 09:56:05.69
>>90
> 分別すればゴミも資源に

それはゴミと資源が混ざってる場合
元々ゴミしかない場合はなにやってもゴミしかでない
94デフォルトの名無しさん:2013/10/26(土) 15:55:27.79
ポインタ変数の初期化についてなんですが

p = NULL;
p = 0;

この二つの書き方は等価でしょうか?
等価であるなら、下の書き方を使いたいのですが
95デフォルトの名無しさん:2013/10/26(土) 16:05:03.94
>>94
p がポインタなら等価
96デフォルトの名無しさん:2013/10/26(土) 16:20:04.50
>>95
ポインタです。ありがとうございます
97デフォルトの名無しさん:2013/10/26(土) 16:31:24.81
p = (Type*)0; にした方がいいんじゃね
98デフォルトの名無しさん:2013/10/26(土) 16:52:17.67
p = static_cast<decltype(p)>(nullptr);
99デフォルトの名無しさん:2013/10/26(土) 17:04:22.50
>>97かnullptr使うべき
100デフォルトの名無しさん:2013/10/26(土) 17:25:47.08
>>99
こうですか?
int *ip = (int*)0;
double *dp = (double*)0;

これじゃだめですか?
int *ip = 0;
double *dp = 0;
101デフォルトの名無しさん:2013/10/26(土) 18:26:56.56
102 ◆QZaw55cn4c :2013/10/26(土) 18:42:23.92
>>100
C/従来のC++ なら 0 でいい、C++ では 0 を使うことが多い(というか多かったというべきか)。

ただし >>100 の例えば int *p = 0; では、0 がヌルポインタであることを左辺から知る形で、0 自体に型情報はない。
0 という表記自体に型情報を追加する必要のある場面がC/C++両者にあり、その場合は (void *)0 とする。

C: 可変長引数を持つ関数を呼び出す場合など。execv*() で (char *)0 と書かれていたことを記憶している。
C++は誰かお願い(オーバーロード?)、C++11(最新仕様)では nullptr が追加された。
103100:2013/10/26(土) 18:44:30.23
0代入使います。ありがとうございました

#include <stdio.h>
int main()
{
int *a = 0, *b = (int*)0, *c = NULL;
printf("a = 0 : %p\n", a);
printf("b = (int*)0 : %p\n", b);
printf("c = NULL : %p\n", c);
return 0;
}
/* gcc version 4.8.1
a = 0 : 00000000
b = (int*)0 : 00000000
c = NULL : 00000000
*/
104100:2013/10/26(土) 18:50:03.72
>>102 読む前に投稿してしまいました。すんません
可読性の問題になるんですかね?
それともポインタの初期化にはその型に合うポインタを代入するのがマナー(?)ってことですか?
105 ◆QZaw55cn4c :2013/10/26(土) 18:57:31.37
>>104
C では p = NULL と明示する人が多かったような気がする。
C++ では p = 0 とか、あるいは for(p = const; *p; p++); とか積極的に簡略表記を使う人が多かったような気がする。
たぶん C→C++ と移行していくなかでスマートに変わっていくんだね

nullptr は‥‥なんだかセンス悪いと思ってしまう、2年たってまだ慣れない
106100:2013/10/26(土) 19:11:38.77
>>105 なんだか色々あるんですね
program.station.ez-net.jp/special/handbook/cpp/syntax/nullptr.asp
皆さんありがとうございました
107デフォルトの名無しさん:2013/10/26(土) 19:46:46.79
C言語ユーザーってハロウィンはやっぱりC言語のコスプレするの?
108デフォルトの名無しさん:2013/10/26(土) 20:36:34.66
Qzには触らなくていいよ
知ったかしてるだけだから
109デフォルトの名無しさん:2013/10/26(土) 22:40:57.64
>>101がとんちんかんでワロタ
110デフォルトの名無しさん:2013/10/26(土) 23:42:07.94
最近Cを勉強し始めました
Cが出来るようになるとどのようなことが可能なんですか?

例えば、あるソフトが高くて買えないから、作っちゃえみたなことも
出来るのでしょうか?

CADなんて数十万円するけど、自分で作ったらまぁタダですよね
111デフォルトの名無しさん:2013/10/26(土) 23:46:31.66
作れるから頑張れ
112デフォルトの名無しさん:2013/10/26(土) 23:48:22.51
そう簡単に作れたら大金持ちになれるわけだが、出来ないわけではない
頑張れ
113デフォルトの名無しさん:2013/10/27(日) 00:04:31.16
>>110
俺が学生の頃には、それが常識だった
エディタどころかアセンブラまで自作していた
114デフォルトの名無しさん:2013/10/27(日) 00:25:09.63
>>110
高い安いで言えば、作るのに自分の本来の仕事の日当以下で作れれば
そりゃ安くつくんだろうけど…
多分、何倍も何十倍も何百倍も高く付くと思うよ。
もし作れたとしても
115デフォルトの名無しさん:2013/10/27(日) 00:33:35.30
>>114


だとしたらCを習得する目的ってなんですか?
116デフォルトの名無しさん:2013/10/27(日) 01:15:43.59
>>115
CADを作る会社で仕事するためだろ
アホか
117デフォルトの名無しさん:2013/10/27(日) 01:27:27.35
ちゃんと、それだけで立派な商売になってるしな
118デフォルトの名無しさん:2013/10/27(日) 01:29:13.31
Java厨と戦うためです。
119デフォルトの名無しさん:2013/10/27(日) 01:30:33.59
だよな

趣味ではなくそれで得したい → 仕事で使ってソフト売ればいいだろゴミ
得とかいらないから趣味でやりたい → 趣味なら得関係ないだろゴミ

プログラむ言語ってのはソフト1本買えない乞食が趣味と実益満たすためにあるんじゃねーんだよゴミ
120デフォルトの名無しさん:2013/10/27(日) 01:37:04.91
社会に貢献するためにあるのです。プログラミング言語は(倒置法)
121デフォルトの名無しさん:2013/10/27(日) 01:39:17.11
print 'hello work' if jitakukeibi()
122デフォルトの名無しさん:2013/10/27(日) 01:48:51.99
>>115
C言語を学んだらMMORPG作って稼げるよ。
通信と3Dのライブラリはただで使えるやつがあるから、それをCから利用すれば簡単。
仕事や学校があっても、週末と毎日帰ってから一生懸命作れば1ヵ月もあれば完成する。
知り合いも何人も作ってて、一番稼ぎの悪い奴でも月10万稼いでる。
稼ぎのいい奴は月200万越えてる。
しかも1度作れば2ヵ月くらい放置でいいし、2ヵ月おきにちょっと新ダンジョンを追加すればいい。
新ダンジョンを作るソフトもC言語を使って作ればいい、半日で作れるよ。
最低でも月10万ってのはでかいよ、毎日3000円のランチ食えるからな。
とはいえサーバーの維持費は月1000〜10000円くらいかかる。
1000円ってのは10万稼いでる奴、10000円ってのは200万稼いでるやつ。
とにかく今ゲーム業界もMMORPGに動いてるからな。
お前も頑張れば今年中にMMORPG作って来年の1月公開とかいけるんじゃないか?

ちなみに俺はプログラムが全く組めないのとゲームに興味がないのとで、副業はヨーロッパからの小物の輸入&ネット販売やってる。
だいたい月3〜5万稼いでる。
123デフォルトの名無しさん:2013/10/27(日) 01:56:22.92
200万はすごいな
俺の知り合いでMMORPG作って稼いでる人は
だいたいみんな月100万前後しか稼いでない
まぁみんな作るだけ作ってほとんどメンテナンスしてないからな
きっちりメンテナンスしてたら200万いくんだろうけど
124デフォルトの名無しさん:2013/10/27(日) 02:14:51.97
税金はちゃんと払えよ
MMORPG運営して年間1500万稼いでた友達がこの間国税局から連絡来たってビビッてた
125デフォルトの名無しさん:2013/10/27(日) 02:21:09.00
個人で作ってるMMOなんて全く聞かないけどそんなに売れてるのか
126デフォルトの名無しさん:2013/10/27(日) 02:41:43.68
結局管理者が一番儲かって
プログラマーは全然旨くないんじゃね?

創業からプログラム担当してる人とかは絶対扱い違うと思うけど・・・
127デフォルトの名無しさん:2013/10/27(日) 02:50:19.00
>>126
だからプログラム組んだ後は管理するんだよ
128デフォルトの名無しさん:2013/10/27(日) 03:31:56.58
皆知り合いの話ばっかでワロタw
そんなに簡単なら自分が儲かっている話をするだろw
129デフォルトの名無しさん:2013/10/27(日) 03:34:09.72
保守運用なんて下っ端の仕事やん
130デフォルトの名無しさん:2013/10/27(日) 05:07:16.01
>>128
ゲームに興味がないと辛いだろ。
それに月にそれだけ稼げる副業もMMORPGだけじゃないし。
131デフォルトの名無しさん:2013/10/27(日) 05:12:47.42
知り合いが100万稼いでたわwそれ知り合いが作ってるわw
132デフォルトの名無しさん:2013/10/27(日) 05:14:47.97
>>128
自分が儲かってる話すると質問された時嘘がバレるだろ!
133デフォルトの名無しさん:2013/10/27(日) 06:55:58.70
プログラミングや管理はともかく、一番の問題は課金だと思うが、どうしてるんだろうか。
134デフォルトの名無しさん:2013/10/27(日) 09:31:36.77
xxの支払い義務が発生します
振込先の口座はyyです
もし期限までに振り込みがなされない場合は裁判所にて〜

と表示するだけじゃん
135デフォルトの名無しさん:2013/10/27(日) 11:16:07.20
それワンクリじゃない?
136デフォルトの名無しさん:2013/10/27(日) 11:44:16.97
>>122
それは有料ゲーム?それともゲーム内アイテム課金?
137デフォルトの名無しさん:2013/10/27(日) 11:58:51.37
sについては1+1/2+1/3+1/4+1/5
tについては1+2+3+4+5 を計算したいです
そこで以下のように書きました

#include <stdio.h>
main()
{
double s;
int i,t;
for(i=1;i<=5;i++){
s+=1.0/i;
t+=i;
}
printf("s=%f\n",s);
printf("t=%d\n",t);
return 0;
}

すると実行結果が
s=2.283333
t=1638247
となってしまいます
tが明らかにおかしいのですが何が間違っているのでしょうか。
学習用C言語開発環境というものを使っています。
138デフォルトの名無しさん:2013/10/27(日) 12:07:04.09
>>137
tの初期値が不定なので、初期化する。
X int i,t;
O int i,t=0;

なおこの種の設定ミスは、コンパイラに警告を出すオプションがあれば、コンパイル時に表示される。
例:
a.c:8:5: warning: variable 't' is uninitialized when used here [-Wuninitialized]
t += i;
^
139デフォルトの名無しさん:2013/10/27(日) 12:09:31.34
>>138
初期値が問題でしたか
やってみたところうまくできました
ありがとうございます
140デフォルトの名無しさん:2013/10/27(日) 13:38:01.05
>>136
俺の知り合いのはアイテム課金だった
射幸心煽ってやれば多少の金持ちは数万くらいすぐ使うって
月10万って言ってる人いるけど、
10万なんてどうかしたら1人のユーザーからでも吸い上げられる額
なにもユーザー1000人とか集める必要ないんだよ
141デフォルトの名無しさん:2013/10/27(日) 13:49:43.24
>10万なんてどうかしたら1人のユーザーからでも吸い上げられる額
>なにもユーザー1000人とか集める必要ないんだよ
なるほど。
ユーザー数は基本的に少ないわけだな。
それなら個人MMOの話をまったくきかないのも納得。
採算とれればユーザー1人でもいいわけだからな。
少数の高額課金ユーザーのほうが設備の維持費も少なくて済むってことか。
完璧な副業だな。
142デフォルトの名無しさん:2013/10/27(日) 14:04:35.02
>>132
印象操作乙
普通は自分が儲かってる話はしない
わざわざライバル増やそうとする知恵遅れはいないよ
143デフォルトの名無しさん:2013/10/27(日) 14:15:34.02
>>142
印象操作乙
ライバルが増えるのを妨害するお仕事は捗っていますか?
144デフォルトの名無しさん:2013/10/27(日) 14:18:22.28
ただの仕事好きならしゃべっちゃうよ
いかにすばらしいシステムを構築したか
自分がその分野を切り開いていったか
実際どれだけしゃべったってライバル増えないってばw

今の世の中は「お金あげるよー」って言っても受け取らない人がほとんどだよ
金がないって言ってる人に、じゃあ儲け方教えてあげるっていってもやらない
マイナスでたら全部出すし、黒字分は全部とっといていいよ。最初は全部こっちでやるから少しずつ覚えるだけでもいいよ
っていってもやらない
じゃあ何もしなくていいから、お金渡す為に名前だけ登録しとくよっていうのも嫌がる

お金を手に入れるかどうかって、結局やるかやらないか程度の差なんだと思うよ
145デフォルトの名無しさん:2013/10/27(日) 14:20:46.20
ネットゲームはそろそろ終わりだろ
146デフォルトの名無しさん:2013/10/27(日) 14:26:28.00
維持費のかからない個人ネトゲは今ぐんぐん勢いを伸ばしてるよ。
ちょっと前なら国税庁はネットオークションで荒稼ぎしてる奴に目を付けてたけど、
今では完全に個人ネトゲの運営者に目を付けてる。
147デフォルトの名無しさん:2013/10/27(日) 14:27:32.05
>>143
印象操作じゃないものに「印象操作乙」って返すとただの馬鹿に見えるよ^^
148デフォルトの名無しさん:2013/10/27(日) 15:10:13.14
プログラムで金を稼ぎたいなら、
C言語勉強してネトゲ開発ってのが最速だな。
149デフォルトの名無しさん:2013/10/27(日) 15:20:06.51
●ンゴに就職ですね
150デフォルトの名無しさん:2013/10/27(日) 15:27:42.65
モバゲーンゴ?
151デフォルトの名無しさん:2013/10/27(日) 15:35:58.29
>>134
プログラム書くのはいいけど、そういう、人に金を払わせる仕事がすごい面倒くさい。
得意な人もいるんだろうけど。
152デフォルトの名無しさん:2013/10/27(日) 15:40:35.88
ゲームでもなんでもいいけど、
作ったとして、凄いのができたとして、
それをどうやって世間に知ってもらう?
153デフォルトの名無しさん:2013/10/27(日) 15:51:04.63
>>151
アイテム課金ならWebマネーで払わせればいいんじゃね?
これなら商品と同時交換なわけだから問題ない
154デフォルトの名無しさん:2013/10/27(日) 15:57:21.66
ゲームで一発当てるって天才肌にやつにしかできないことなんだけどな。
155デフォルトの名無しさん:2013/10/27(日) 16:00:28.79
>>154
送信ボタン押す前に lint 通したほうがいいぞ
156デフォルトの名無しさん:2013/10/27(日) 16:15:34.73
>>155
それがlint通る文章なの?
どんなクソプリプロセッサ使ってるの?
157 ◆QZaw55cn4c :2013/10/27(日) 16:31:16.45
>>155
それほしい、助詞の間違いが最近多くなってきた、いよいよお迎えか?
158デフォルトの名無しさん:2013/10/27(日) 17:08:41.55
辞書レベルの間違いをlintが検出できるわけ無いだろ
159デフォルトの名無しさん:2013/10/27(日) 17:48:34.88
>>158
誠に申し訳ございませんでした。
以後気をつけます ペコ
160デフォルトの名無しさん:2013/10/27(日) 17:56:10.62
何で一発当てる話になってんだ?
月10万程度の小遣いが稼げればいいって話じゃなかったのか。
161デフォルトの名無しさん:2013/10/27(日) 18:02:06.30
その個人ネトゲって普通のMMOみたいなやつ?
サーバーとかむちゃくちゃ金かかるんじゃないの?
162デフォルトの名無しさん:2013/10/27(日) 18:08:37.38
なんでネタにマジレスしてんの?
163デフォルトの名無しさん:2013/10/27(日) 18:11:14.01
>>161
規模によってはそんなにかからない
同時接続十数人程度のMMORPGなら
一昔前の中古ノートでもいける
164デフォルトの名無しさん:2013/10/27(日) 18:14:42.08
4年くらい前のPCをMMO鯖にしたら同時接続数ってどのくらいまでいけるんだろうな、回線は十分だとして。
165デフォルトの名無しさん:2013/10/27(日) 18:16:39.39
一昔前とか4年くらい前とか言っても、
その当時だってピンからキリまであるわけで
166デフォルトの名無しさん:2013/10/27(日) 18:16:57.79
JSで一万、Cで200程度
167デフォルトの名無しさん:2013/10/27(日) 18:19:57.51
>>165
ピンでもキリでも十数人はいけるだろ
168デフォルトの名無しさん:2013/10/27(日) 18:21:19.55
>>166
JSって何?
Javaサーブレット?
Cの50倍も処理できるの?
169デフォルトの名無しさん:2013/10/27(日) 18:22:03.27
Cでも非同期にすれば500程度は行ける
170デフォルトの名無しさん:2013/10/27(日) 18:23:34.14
>>168
最初から非同期だしそのためのLibraryがあるから最近のMMORPGは鯖側JSが多い
171デフォルトの名無しさん:2013/10/27(日) 18:26:10.18
クライアントと接続しっぱなしで通信を処理するスレッドを別に用意して、
ゲーム本体と分離すればいけるか。
ゲーム本体とはキューを介してやりとり。
これでCでも2000くらいはいけるだろう。
172デフォルトの名無しさん:2013/10/27(日) 18:29:45.31
Cで2000行くには64プロセッサ程度必要
わざわざそんなことしなくてもJSならパソコンに毛が生えた程度の鯖で行ける
173デフォルトの名無しさん:2013/10/27(日) 18:38:11.60
非同期ってタイムラグありそうだが
174デフォルトの名無しさん:2013/10/27(日) 18:46:27.82
J.S.Bach
175デフォルトの名無しさん:2013/10/27(日) 19:04:27.57
MMOって普通タイムラグあるでしょ
176デフォルトの名無しさん:2013/10/27(日) 19:10:10.56
MMORPGのスレッドってこんな感じで分ければいいの?

・メインスレッド(初期化、終了処理、各スレッドの監視)
・通信スレッド(クライアントとのコネクションを維持したまま、データの送受信を行う)
・待ち受けスレッド(クライアントから接続要求がきたらユーザー名とパスワードをチェックし、パスしたら通信スレッドにソケットを渡す)
・ゲームメインスレッド(通信スレッドとのキューの読み書き、MOBの制御やダメージ計算、アイテム管理、データの読み書き)
・管理スレッド(WEBIFなどから管理のために接続してあれこれするスレッド)
177デフォルトの名無しさん:2013/10/27(日) 19:12:40.22
Javaはオワコンの癖にしぶといなと思ってたけど、MMORPGに使われてるのか。
MMORPGのために生き残ってるなら全然オワコンじゃないな。
178デフォルトの名無しさん:2013/10/27(日) 20:05:14.83
>>174
ずいぶん古典だな
179デフォルトの名無しさん:2013/10/27(日) 21:22:16.62
誰か>>176に突っ込み入れろよw
下手に突っ込み入れると低スキルがバレるから無理かw
180デフォルトの名無しさん:2013/10/27(日) 21:33:57.07
古典はハイドン・モーツァルト、せいぜいベト先生まで
181デフォルトの名無しさん:2013/10/27(日) 21:44:49.25
>>176
>待ち受けスレッド
これいらないだろ。
182デフォルトの名無しさん:2013/10/27(日) 21:50:53.86
>>181
なんで?
183デフォルトの名無しさん:2013/10/27(日) 21:57:02.98
>>176
>ゲームメインスレッド
これいらないだろ。
184デフォルトの名無しさん:2013/10/27(日) 21:57:49.13
>>182
いちいちスレッド化しなくても、どっちみち認証前にソケット自体は作られてしまうんだから通信用スレッドで処理すればいい。
認証するためだけにスレッド走らせるのはコストが大きすぎる。
185デフォルトの名無しさん:2013/10/27(日) 22:00:59.27
>>183
なんで?
186デフォルトの名無しさん:2013/10/27(日) 22:01:01.76
>>183
なんで?
187デフォルトの名無しさん:2013/10/27(日) 22:02:44.60
接続要求はポーリングするの?
188デフォルトの名無しさん:2013/10/27(日) 22:02:49.42
>>185
>>186
いちいちスレッド化しなくても、どっちみち誰も使わないんだから終了処理すればいい。
189デフォルトの名無しさん:2013/10/27(日) 22:03:48.03
解の公式使って実数解、重解、虚数解のときのxの解を求めるんだけど
動くことは動くんだけど計算式に#とか紛れ込んでておかしく表示される
ちょっとだれか教えてください。
#include<stdio.h>
#include<math.h>
int main(void){

double a,b,c,D,sd,x1,x2,x3;
printf("Input a, b and c ->");
scanf("%lf%lf%lf",&amp;a,&amp;b,&amp;c);
a!=0;
D=(b*b)-(4*a*c);
sd=sqrt(D);
x1=(-1*b+sd)/(2*a);
x2=(-1*b-sd)/(2*a);
x3=(-b)/(2*a);
a!=0;
if(D>0){
printf("Imaginary Root\n");
printf("x=%.3f\n",x1);
printf("x=%.3f\n",x2);
}else if(D==0){
printf("Imaginary Root\n");
printf("x=%.3f\n",x3);
}else{
printf("Imahinary Root\n");
printf("x=%.3f + %.3f\n",(-1*b)/(2*a),sd/(2*a));
printf("x=%.3f - %.3f\n",(-1*b)/(2*a),sd/(2*a));
}
return 0;
}
190デフォルトの名無しさん:2013/10/27(日) 22:10:22.47
>>184
だめ
攻撃されたらどうすんの?

ブルートフォースアタックとか何MBものデータを送り付けられたりとか
その対応を通信スレッドでやるとタイムラグが大きくなるだろ

認証時のユーザー名とパスワードに100MBのデータとか送り付けられたら面倒
認証前だとアカウント凍結するわけにもいかんし
IPで弾くにしても非固定だと効果が薄いうえに
関係ないユーザーが次にそのIPを割り当てられたら
認証できなくなる

待ち受けスレッドがあれば、そこへの攻撃で認証に時間がかかったとしても
一度認証を通れば通信スレッドでスムーズに処理できるからタイムラグを少なくできる
認証通ってから攻撃してくる奴は切断してアカウント凍結
そうすれば次からは認証で弾ける
191デフォルトの名無しさん:2013/10/27(日) 22:12:13.00
>>187
10くらいポーリングしていいんじゃないの?
192デフォルトの名無しさん:2013/10/27(日) 22:14:43.84
いや、普通認証サーバーは認証サーバーで別に用意しない?
193デフォルトの名無しさん:2013/10/27(日) 22:17:13.93
認証サーバからゲームサーバへソケット渡せないだろボンクラ
194片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/27(日) 22:21:45.33
>>189
doubleは虚数を扱えない
195デフォルトの名無しさん:2013/10/27(日) 22:25:01.27
ここへきてなぜかあぼーん入ったw
196デフォルトの名無しさん:2013/10/27(日) 22:28:25.42
>>193
ソケット渡す必要ないだろ
何でソケット渡す前提なんだよ
197デフォルトの名無しさん:2013/10/27(日) 22:32:24.68
>>189
マルチ、ウザイ
198デフォルトの名無しさん:2013/10/27(日) 22:36:29.73
[認証サーバー]―[DBサーバー]―[ゲームサーバー]

って接続されてて、認証からプレイまでの流れは
1. 認証サーバーへ接続して認証されたらセッションキーが発行され、セッションキーとIPアドレスをユーザー名と関連付けてDBサーバーに保存する
2. クライアントは発行されたセッションキーを使ってゲームサーバーに接続する

セッションキーは有効期限があり、ネトゲのタイムアウトと同じくらいの時間で非常に短い
ゲームサーバーに直接攻撃しても、キーの長さ分しか読み込んで判定しないため、
たとえばキーが64byteなら100MB送り付けられても最初の64byteだけ見て切断する
199デフォルトの名無しさん:2013/10/27(日) 22:40:01.64
Input a, b and c ->1 2 2
Imahinary Root
x=-1.000+-1.#IO
x=-1.000--1.#IO
続行するには何かキーを押してください . . .

このシャープって何なの?
200デフォルトの名無しさん:2013/10/27(日) 22:44:06.29
>>198
面倒な手順が増えただけじゃね?
201デフォルトの名無しさん:2013/10/27(日) 22:57:36.10
まあポーリングするくらいならサーバの方がいいわな
202デフォルトの名無しさん:2013/10/28(月) 02:01:02.51
>>179
わけ方の思想が違いすぎて突っ込みいれようとおもったら全直しになっちゃう
203デフォルトの名無しさん:2013/10/28(月) 02:04:13.45
>>202
全直しでもいいじゃん
書こうぜ
204デフォルトの名無しさん:2013/10/28(月) 02:10:32.08
承認って一つのスレッドでやんの?
非同期通信で?

接続を待ち受けるスレッドが1つあって、
接続がくるたびに承認用のスレッドを別に立てて
そっちにソケット渡したほうがよくないか?
205デフォルトの名無しさん:2013/10/28(月) 02:47:45.69
このスレにはMMOの接続/ログインの設計すらまともにできないボンクラしかいないのか
206デフォルトの名無しさん:2013/10/28(月) 03:11:21.99
仕様書に従ってコーディングするだけの
電脳ドカタしかいないからね。
207デフォルトの名無しさん:2013/10/28(月) 03:33:10.07
詭弁なのに?
208デフォルトの名無しさん:2013/10/28(月) 03:39:14.04
>>199
非数であることを示している。
そのprintf()に到達する前にも何箇所かaの値を表示して味噌。
209デフォルトの名無しさん:2013/10/28(月) 10:35:20.33
>>204
一瞬で終わる認証のためにいちいちスレッド立ち上げるのか
210デフォルトの名無しさん:2013/10/28(月) 10:57:34.36
おまえら全然分かってないね。
ゲームで一番重要なのはキャラクタデザインとストーリーだよ。
プログラマなんて土方で充分
211デフォルトの名無しさん:2013/10/28(月) 11:03:23.03
テトリスとか有名ゲーはみんなそうだよな
わかるわ
212デフォルトの名無しさん:2013/10/28(月) 11:03:26.58
MMORPGなんてストーリーあってないようなものじゃん。
ストーリーを意識しながらMMORPGやってる奴なんてごく一部だろ。
213デフォルトの名無しさん:2013/10/28(月) 11:16:20.40
>>212
おまえあほだろ?
双六でもやっとけ
214デフォルトの名無しさん:2013/10/28(月) 11:21:05.51
ストーリーとはイケメンと美少女がキャッキャウフフすることです
215デフォルトの名無しさん:2013/10/28(月) 11:22:46.22
>>213
わかるわ
双六もストーリーすげえよな
人生ゲームとか壮大すぎて毎回泣くわ
216デフォルトの名無しさん:2013/10/28(月) 12:04:59.56
イケメンとか美少女とか別にいらない
多少工夫しながら敵を倒したりキャラの能力上げたり
新しい必殺技を習得するのが楽しいんだろ
217デフォルトの名無しさん:2013/10/28(月) 12:26:58.29
どっちにしてもMMOにするなら接続して認証するシステムが必要なわけで。
218デフォルトの名無しさん:2013/10/28(月) 14:13:12.92
接続はいいけど、回線はどうするつもりだろうね
60fpsで1回のデータの平均受信サイズが16KBだとすると
1秒で960KB、約1MBの通信量だ
100人接続するだけで毎秒100MBの通信量ということになる
実測値で100MB/Sってけっこうきついだろ
219デフォルトの名無しさん:2013/10/28(月) 14:33:51.55
PaaSがあるから自分で用意する必要なくね
220デフォルトの名無しさん:2013/10/28(月) 15:39:24.79
PaaSなんか信用できるか!
221デフォルトの名無しさん:2013/10/28(月) 17:00:45.75
>>218
1フレーム16KBも何送るの?
222デフォルトの名無しさん:2013/10/28(月) 17:06:26.07
ゲームの描画処理までサーバでやって、エンコードしたフレームをリアルタイム転送
223デフォルトの名無しさん:2013/10/28(月) 17:08:25.07
描画処理までサーバ側でやるのか
ずっとクライアント側でやるもんだと思ってた
224デフォルトの名無しさん:2013/10/28(月) 17:12:17.35
>>221
ブラウザの履歴とかWebCam画像とかいろいろあるだろ
225デフォルトの名無しさん:2013/10/28(月) 17:26:46.40
クライアントからサーバーへ送られるデータは、
位置情報がlong型なら4byteが空間座標+向きで16byte、
キャラのモーションがlongで4byteくらいか、
装備が全身10箇所で各longだと全部見た目に影響するなら40byte、
スキルなどのエフェクトの状態がlongで4byte、
合計64byte/frameくらいじゃね?
60fpsなら3840byte/s。
101人接続してたら、一人に送信するのはその人以外の100人のデータだから、
送信は3840000byte/s = 約3.8MB/s。
それが101人に送られるが、面倒だからざっくり100人で計算すると、380MB/s。
サーバーからの送信だけでもこれだけの回線速度が必要。

>>218,>>221が考えてるほどMMORPGの世界は甘くない。
もうちょっと勉強してからレスしような。
226デフォルトの名無しさん:2013/10/28(月) 17:29:38.39
先のMMOで稼いでる知り合いとやらはその環境整ってるのか
すごいな
227デフォルトの名無しさん:2013/10/28(月) 17:46:55.21
380MBって一般家庭だと無理じゃん
228デフォルトの名無しさん:2013/10/28(月) 17:49:28.40
なんで毎フレーム送るの?
つーかキャラの動作よりアイテム一覧送信とか、
マップ切り替え時の取得のが重いはずなんだが
229デフォルトの名無しさん:2013/10/28(月) 17:53:54.33
分かっていってる気もするけど、一応
100人同時にログインしていても位置やアクションデータを送受するのは近くの人だけ
(上限あり、同じパーティの人は優先)
全員が全員に送られる(可能性がある)のはチャットログぐらい
230デフォルトの名無しさん:2013/10/28(月) 18:06:47.47
>>225
すげーな
そんなヘボ実装を得意げに語れるなんて!
231デフォルトの名無しさん:2013/10/28(月) 18:08:09.08
帯域と応答速度もごっちゃになってるな
232デフォルトの名無しさん:2013/10/28(月) 18:16:09.66
>>228
アイテム一覧なんてログインしたときくらいだろボンクラ
233デフォルトの名無しさん:2013/10/28(月) 18:20:41.54
>>229
それはポリシーにもよるだろう
遠くの他キャラが棒立ちしててもOKならそれでもいいんだろうけど、
遠くまでリアルにしようと思ったらそうもいかない
234デフォルトの名無しさん:2013/10/28(月) 18:33:20.93
>>228
>マップ切り替え
え?
マップ切り替えってMow Loadingとか出す感じ?
それは明治時代のmmoだよ
今はシームレスな切り替えが主流
235デフォルトの名無しさん:2013/10/28(月) 18:49:52.33
クライアントの環境に合わせて通信頻度を切り替えるくらい当たり前っすよハハハ
ってことか
236デフォルトの名無しさん:2013/10/28(月) 18:50:59.16
Minecraftみたいな複雑な3D多人数ゲーの自宅サーバが個人で建てられる時代にこんなホラが通用するかね
237デフォルトの名無しさん:2013/10/28(月) 19:32:28.86
>>234
Mowって何?
ウシ?
238デフォルトの名無しさん:2013/10/28(月) 19:56:53.68
>>176の通信スレッドって1つだけなのかな
1つだけだと100も接続あったらタイムラグがヤバそうだが
MMORPGならタイムラグが0.5秒もあったらもうゲームとして破綻するし
239デフォルトの名無しさん:2013/10/28(月) 20:00:36.67
>>232
ログインした時だけって発想おかしい、
例え手持ちのみを指してるとしても、途中でリフレッシュもするよ。
アイテムログや監査や、セッション管理のがよほど重要だってのを理解してないだろ。
240デフォルトの名無しさん:2013/10/28(月) 20:06:16.40
>>233
それも問題だよな。
強いモンスター狩るとかってパーティーに入ったけど、集合場所へ近づいて行ったらモンスターもパーティーメンバーも止まってるから
まだ始まってないのかと思ってすぐ近くに行く前に近くの雑魚モンスターを狩って棒立ちして待ってたら、何で攻撃しないのかと言われたw
もっと近付いたらみんな戦ってたよ。
241デフォルトの名無しさん:2013/10/28(月) 20:13:06.17
すごく個人的な意見なんだけど、
かなり離れた高いところから見てもキャラにはちゃんと動いていて欲しい
ビルの10階から町行く人々を眺めるような感覚を味わいたいことが多々ある
242デフォルトの名無しさん:2013/10/28(月) 20:18:08.01
リアル3DMMOとかで、1km相当の範囲の人の動作を反映させるとかきついのかな?
243デフォルトの名無しさん:2013/10/28(月) 20:45:25.56
それはどうしてもMMOでやりたいことなのか?
244デフォルトの名無しさん:2013/10/28(月) 21:28:29.62
俺は別にやりたくないんだけど兄貴が留学する前に目標として置いて行った
宿題なんだよね。
245デフォルトの名無しさん:2013/10/28(月) 21:44:00.84
>>243
うん、引きこもりだから実際そういう景色が見られるところに行くのはアレだし
でも擬似的にそこに行ったりしたいからライブカメラじゃ物足りない
246デフォルトの名無しさん:2013/10/28(月) 22:04:02.39
どういう設定だよそれ
247りんく:2013/10/28(月) 22:19:02.10
Cでゲームを作ろうと思ってるんですけど、作るための基礎(ポインタなど)
ってどんなことがありますか?できればたくさんあげてもらえると嬉しいです。
ちなみに、ポインタはあんまり書けません。
本も読んでますがそれだけだと知識不足です。
248デフォルトの名無しさん:2013/10/28(月) 22:37:43.63
Cでゲームは時代遅れ
他の言語をやれ
249デフォルトの名無しさん:2013/10/28(月) 22:41:50.02
>>247
callback
250デフォルトの名無しさん:2013/10/28(月) 23:22:11.39
>>247
本を読んでも足りない部分はアルゴリズムとかだろ。
その辺りになってくると言語関係ない。
グラフィック扱いたいならWin32APIやDirectX使うけど、どちらも言語ではない。
DirectX使うならC++のクラス程度の知識まで必要。
どちらにしてもポインタは必須。
251デフォルトの名無しさん:2013/10/29(火) 00:02:43.99
>>247
C勉強する前にはじめて読む8086読んでアセンブラの勉強してからにしたほうがいいんじゃない?
252デフォルトの名無しさん:2013/10/29(火) 00:51:52.18
>>238
普通0.5秒以上タイムラグあるだろ。
253デフォルトの名無しさん:2013/10/29(火) 02:46:12.00
>>252
ファッ!?
254デフォルトの名無しさん:2013/10/29(火) 04:25:25.19
>>252
ねーよ
敵に攻撃当たった瞬間にダメ出るだろうが
255デフォルトの名無しさん:2013/10/29(火) 05:59:09.26
>>252
ワロタw
0.5秒もタイムラグあったらゲームにならねえよ
FPSとかアクションゲーじゃ致命的
256デフォルトの名無しさん:2013/10/29(火) 06:01:47.65
初心者スレだからなのか、想像で物事を語るやつ多すぎないか
257デフォルトの名無しさん:2013/10/29(火) 08:18:52.85
>>247
ゲームならC++を使わないと厳しい。
まぁ、Cでポインタに慣れてからが良い。
あとMFCは、コード見ると無理矢理クラス化してて
見るだけで嫌になるから、Qtをインストールして
win32api 等をたたくのが良いと思うよ。
258デフォルトの名無しさん:2013/10/29(火) 12:17:13.61
プログラム初心者なんですけど、アセンブラの間接アドレスとCのポインタって
あんまり変わらないんでしょうか?
259デフォルトの名無しさん:2013/10/29(火) 12:29:32.98
間接アドレスはポインタのポインタっぽいな。
260デフォルトの名無しさん:2013/10/29(火) 12:38:19.15
>>255
FPSとMMORPGを一緒にすんなw
261デフォルトの名無しさん:2013/10/29(火) 12:44:49.30
直接アドレスで参照するのがグローバル変数で、
間接アドレスで参照するのがポインタだと思う。

違いは、Cでポインタをn個進めるのが、
アセンブラでは、バイトアドレッシングの場合、
(対象のバイト数×n)進めるのに相当するってこと
262デフォルトの名無しさん:2013/10/29(火) 12:49:19.13
いつもダメ表示がすぐでるのならローカルで計算してるんだろう
ローカルとサーバの矛盾をいかに誤魔化すかがゲームデザインの勘所だよ
263デフォルトの名無しさん:2013/10/29(火) 12:53:05.93
ローカルで計算してたらチートされるのでは?
264デフォルトの名無しさん:2013/10/29(火) 13:12:00.68
このスレを見てたらもしかして
ネットワークカードもハイエンド使わないといけない時代なのか
と錯覚してしまうな


え、無線…? またまたご冗談を
265デフォルトの名無しさん:2013/10/29(火) 13:24:35.75
>>263
最終的な計算と表示上の計算は別
あとでベリファイかけるよ
266デフォルトの名無しさん:2013/10/29(火) 13:56:52.43
>>265
???
分かりにくいから攻撃ボタンを押した瞬間から最終的に敵のHPが減算されるまでの流れを教えてくれ。
267デフォルトの名無しさん:2013/10/29(火) 14:01:29.34
>>264
380MB/sとかってのは鯖側の話じゃないのか
蔵側は下り3.8MB/s、上り3.8KB/sって流れだったと思うが
268デフォルトの名無しさん:2013/10/29(火) 14:09:06.98
鯖とか蔵とかバカっぽいからやめろよ
269デフォルトの名無しさん:2013/10/29(火) 14:12:37.05
>>268=バカ
270デフォルトの名無しさん:2013/10/29(火) 14:23:18.14
蜜墨蔵
271デフォルトの名無しさん:2013/10/29(火) 14:31:58.94
>>264
380MB/sとかってのは沙亜芭亜側の話じゃないのか
苦羅威庵斗側は下り3.8MB/s、上り3.8KB/sって流れだったと思うが
272デフォルトの名無しさん:2013/10/29(火) 14:51:06.69
>>268
句読点のない文章はバカっぽいからやめろよ。
273デフォルトの名無しさん:2013/10/29(火) 14:54:58.77
>>272
引用元にそう言うなら、おまえの方が馬鹿じゃん(笑)
274デフォルトの名無しさん:2013/10/29(火) 15:01:04.48
>>272
いきなり他人にタメ口とかDQNっぽいからやめろよ
275デフォルトの名無しさん:2013/10/29(火) 15:02:54.37
>>272
????????????wwwwwwwwwwwwっw???????????Wwwwwwwwwww???????????????????????w???????????
276デフォルトの名無しさん:2013/10/29(火) 15:03:58.12
>>275
ガキは来んなよ
277デフォルトの名無しさん:2013/10/29(火) 15:06:02.29
>>276
句読点のない文章はバカっぽいからやめろよ。
278デフォルトの名無しさん:2013/10/29(火) 15:18:15.83
>>268
昼間からカキコとかニートっぽいからやめろよ
279デフォルトの名無しさん:2013/10/29(火) 15:20:53.76
>>266
# 一例
攻撃ボタン押下
  ↓
┌サーバーに送信
│↓
│ヒット/ダメージ判定
│↓
│ダメージ量表示

│サーバーサイド

ヒット/ダメージ判定

HP減算
280デフォルトの名無しさん:2013/10/29(火) 15:41:21.99
いや数値は完全にサーバー依存だよ
乱数が相手持ちなんだから、合わせるの無理だなんてすぐわかるだろ
281デフォルトの名無しさん:2013/10/29(火) 15:45:36.05
>>279
おお、なるほど、分かりやすい

>>280
反論があるなら>>279みたいにフローを書けよ
282デフォルトの名無しさん:2013/10/29(火) 15:48:22.15
フローってw
こいつこんな認識でプログラミングできると思ってるのか?w
283デフォルトの名無しさん:2013/10/29(火) 15:51:40.66
糞ワロタ
284デフォルトの名無しさん:2013/10/29(火) 15:58:22.20
つかどうせヒット判定するんだから、
その返信パケットに仕込んきゃいいだけだ
ごまかす意味がわからん
285デフォルトの名無しさん:2013/10/29(火) 16:01:07.42
ちなみにMMOとかだとサーバー側からダメージや状態が一方的に送られてくる
多人数なんだから当たり前だよね
286デフォルトの名無しさん:2013/10/29(火) 16:27:32.64
>>285
んなこたーない
287デフォルトの名無しさん:2013/10/29(火) 16:38:17.33
>>280
MMORPGでの敵のダメージ判定はいい加減だよ
MMORPGって敵のHPはみんな数値じゃなくてゲージで表示されてるよね
何でか分かる?

ダメージなんていい加減だからだよ
>>279みたいに計算してて、クライアントではダメージが489と計算されて表示されて、
サーバー側では514と計算されて敵のHPから514引かれるような誤差が当たり前だからだよ

MMOでは日々多くのプレイヤーが一日に合計何百万回と攻撃するから
平均値と理論値がだいたい同じになるんだよ
だから多少の誤差よりも殴ってすぐにダメージを出す自然な表現のほうを優先するんだよ
288デフォルトの名無しさん:2013/10/29(火) 16:42:23.24
TCPだから双方向ですよ(ドヤ顔)
289デフォルトの名無しさん:2013/10/29(火) 16:42:24.48
>>286
否定するならまず根拠を述べようね知ったかぶりくん
290デフォルトの名無しさん:2013/10/29(火) 16:44:57.27
>>289
>>285をよく読めばどこがおかしいか分かる。




















>>285の言う通りなら敵に攻撃がヒットしてからダメージが表示されるまでに絶対ラグが出る。
291デフォルトの名無しさん:2013/10/29(火) 16:49:42.08
292デフォルトの名無しさん:2013/10/29(火) 17:00:54.56
ここ見てると、C使いって言っても俺と同じくらいのアホばっかなんだなって凄い安心する。
293デフォルトの名無しさん:2013/10/29(火) 17:05:39.05
>>290
見えてなくてもラグは出てるよ
表示が途切れる時は帯域の限界とかで特に遅くなってるってだけ
本当に何も知らんのだな
294デフォルトの名無しさん:2013/10/29(火) 17:08:35.87
憶測で物事を語ってる奴多すぎ
初心者は大人しく質問だけしてろ
295デフォルトの名無しさん:2013/10/29(火) 17:09:37.80
>>291
それ書いたの反論先の人間だからw
まさか本当にTCPセッションと上位層のコマンドの区別もついてないとは
296デフォルトの名無しさん:2013/10/29(火) 17:17:02.17
>>293
>見えてなくても
ゲーマーなら0.5秒もラグが出たら見えるし気付くが?
ヒットした瞬間にサーバーにそれを送信して、何百人も接続してるサーバーでそれからダメージ計算して、
それをクライアントに送信して、それから描画って0.5秒以上かかるよ
お前通信関係のプログラミングしたことないだろ
297デフォルトの名無しさん:2013/10/29(火) 17:17:08.04
あと応答時間はモーションの発動する瞬間に既にパケット送っておいて、
早めに返す仕様とかに工夫してるんだよ
アクション性が重要な物はもっとシビアで、ラグも平気で出る
298デフォルトの名無しさん:2013/10/29(火) 17:18:32.21
UDPなんてFPSのボイチャくらいだろ。
299デフォルトの名無しさん:2013/10/29(火) 17:18:32.78
>>296
かかるよって、かからないようにするんだよ馬鹿
お前いいかげん、実際にパケットキャプチャするでもいいから応答速度計れや
300デフォルトの名無しさん:2013/10/29(火) 17:24:52.03
>>297
モーション開始時だったらまだヒットするかどうか分からないから無理
攻撃してもよけられるなんてざら
魔法とか特にモーション終わってさらにエフェクト出てからダメ判定まで1秒以上あったりするし、
その間にMOBが移動するなんてざら
301デフォルトの名無しさん:2013/10/29(火) 17:27:14.73
>かからないようにするんだよ馬鹿
こういう寝言は仕組みを示してから言えボンクラ
302デフォルトの名無しさん:2013/10/29(火) 17:30:11.28
>>300
だから先にサーバーに送って全て判定しておくって方法があるんだよ
現代のMMOではリアルタイム性が重要だから、ラグったら表示もラグる

応答が常時500ms以上かかる環境でプレイしてる馬鹿には言っても無駄か
303デフォルトの名無しさん:2013/10/29(火) 17:35:04.16
何を送るの?
全てって何を判定しておくの?
プレイヤーは何をするか分からないのに
304デフォルトの名無しさん:2013/10/29(火) 17:38:42.51
>>293
>見えてなくてもラグは出てるよ
>表示が途切れる時は帯域の限界とかで特に遅くなってるってだけ

>>302
>現代のMMOではリアルタイム性が重要だから、ラグったら表示もラグる
305デフォルトの名無しさん:2013/10/29(火) 17:44:15.16
ところで>>238はどうなったの?
306デフォルトの名無しさん:2013/10/29(火) 17:48:35.97
>>303
もっと平たく言うのか?
サーバー上にある敵(やプレイヤー)オブジェクトなどはサーバーが計算してる。
だから、攻撃ボタンを押下した瞬間にコマンド送信して、
クライアント側の動作を伝えておけば、
画面上の表示までに、ヒットその他の応答を全て返せる
昔のMMOはこういう仕様も多い

そのヒットまでの間に、モーションのキャンセルなどがあるような、
アクション性の高いゲームは、普通にラグる

>>304
程度の問題だよ
500msなんて想定してるのは馬鹿としか思えないが
307デフォルトの名無しさん:2013/10/29(火) 18:07:53.15
>>306
なんでわざわざラグる可能性のある実装をするの。
1フレも遅れずにダメ数値に誤差のない実装をしろ。
308デフォルトの名無しさん:2013/10/29(火) 18:14:01.43
>>307
釣られてやんのw
普通はそういうラグゼロ実装だよ
俺の知り合いもそういう実装にしてるよ
309デフォルトの名無しさん:2013/10/29(火) 18:27:31.19
こりゃ実際にプレイすらしてないな
310デフォルトの名無しさん:2013/10/29(火) 18:33:41.74
>>309
お前最近のMMORPGプレイしたことないだろw
ラグも誤差もないよw
311デフォルトの名無しさん:2013/10/29(火) 18:58:58.37
10年くらい前のmmoはラグあったな、でも最近のmmoはラグのない実装がほとんどだから滅多に見ないよな。
人口の多いmmoだと処理能力的にラグのない実装は今でも難しいっぽいけど、人口の少ない個人mmoなら余裕だろ。
FF14とかは人口多いから処理能力的に厳しいし、ラグあり実装だろ。
チョンチュン産のmmoは処理能力云々に関わらず実装が粗悪だから今でもラグありの実装が主流だったはず。
312デフォルトの名無しさん:2013/10/29(火) 19:08:43.34
>>311
それってプレイヤーから見て自分のキャラクターだけが1フレームもラグってないってだけの話でしょ?
313デフォルトの名無しさん:2013/10/29(火) 19:19:01.17
>>312
だろうな

0.5秒なら分かる君はちょっとネトゲの作りを勉強してから
出直すべきだと思う
314デフォルトの名無しさん:2013/10/29(火) 19:19:04.20
ここはなにのスレでしょうか
315デフォルトの名無しさん:2013/10/29(火) 19:22:59.50
さすがにこういう実際の動画見せれば理解できるよな?
http://www.youtube.com/watch?v=4mdQ7gv7ptY
316デフォルトの名無しさん:2013/10/29(火) 19:35:05.78
昔はそんなラグゼロ()仕様があったけど、
今のMMOでそんな事したらチートされ放題だよ
317デフォルトの名無しさん:2013/10/29(火) 19:52:32.83
見えない敵と戦うスレ
318デフォルトの名無しさん:2013/10/29(火) 19:57:07.07
>>316
クライアントでヒット判定やダメージ計算するからだろボンクラ
319デフォルトの名無しさん:2013/10/29(火) 20:07:49.87
>>316
>>285を100回読め
升をする隙はないしラグもない
320デフォルトの名無しさん:2013/10/29(火) 20:15:32.55
リアルと同じ感覚で考えてるんだろうな

DQNのパンチが飛んでくる
→不確定要素もあるし殴られるまでどれだけのダメージになるか正確には分からない
→殴られた
→痛さや場所や怪我の具合を見てダメージを理解

こんな感覚をそのままコードにしようとするから
敵に攻撃したらサーバにそのデータ送ってダメージ計算とか
敵を攻撃したらクライアントでダメージ計算とか
そういう発想しかできないんだろう

リアルと違ってコンピュータ上の話なんだから頭使えよ

>>312
最初からその流れだっただろう
他人のラグまではどうにもできんよ
321デフォルトの名無しさん:2013/10/29(火) 20:30:36.91
ニアカすればどうなってるかわかるよ。
A:殴る、B:防御
と入れてるとき
B側は防御出来てるのに、A側ではスカってるとかある。
でも結果は同じだからニアカしない限り誰も気づかない。
322デフォルトの名無しさん:2013/10/29(火) 20:52:41.49
ニアカってなんだろう…ニアカットとかそんな用語?
323デフォルトの名無しさん:2013/10/29(火) 20:53:24.66
MMOのMOBの管理ってどうなってんだ?
過疎ゲーじゃない限り至るところに人がいるから、その周辺のMOBは全部アクティブだよね?
数百〜千匹くらい?
MOBの構造体作って配列にして数百匹管理するのかね?

struct MOB{
...
}mobData[1024];

とか?
スゲーメモリ食いそう
324デフォルトの名無しさん:2013/10/29(火) 21:01:06.53
メモリがどれだけ必要かは計算してから言えよ。

HP・・・4バイト
MP・・・4バイト
攻撃力・・・4バイト
防御力・・・4バイト
回避率・・・4バイト
位置xyz・・・4×3バイト
向き・・・4バイト
スキル・・・4×16バイト
外観・・・4バイト
ヘイトリスト・・・4×16バイト

168バイト×1024匹=168キロバイト、こんなもんだろ。
325デフォルトの名無しさん:2013/10/29(火) 21:12:19.67
それのどこにAIがあんの?
326デフォルトの名無しさん:2013/10/29(火) 21:32:32.44
>>324がAIなんじゃないの?
327デフォルトの名無しさん:2013/10/29(火) 21:47:08.89
AIなんてメモリ上に置く性質のものじゃないだろ
328デフォルトの名無しさん:2013/10/29(火) 22:11:39.96
>>319-320
あのな、ダメージはヒットしたかどうかの後の表示なんだよ
ヒットすら不確定ですって言うなら、
ユーザーは最初からHPバーだけ見るし表示の意義なんてない
実際にプレイすることまで考えろ馬鹿
329デフォルトの名無しさん:2013/10/29(火) 22:11:58.01
ニアカは二個のアカウント。
330デフォルトの名無しさん:2013/10/29(火) 22:32:03.91
>あのな、ダメージはヒットしたかどうかの後の表示なんだよ
>ヒットすら不確定ですって言うなら、
>ユーザーは最初からHPバーだけ見るし表示の意義なんてない
>実際にプレイすることまで考えろ馬鹿

331デフォルトの名無しさん:2013/10/29(火) 22:39:38.03
>>330
ユーザーは最初から確実な情報源しか見ない
実際にサーバー側でのヒット処理もダメージ処理も確定してないのに、
攻撃の度に表示される数値なんて、単なるエフェクトと一緒
どんな糞ゲーだよ
332デフォルトの名無しさん:2013/10/29(火) 22:41:02.29
>>329
2アカなら許すがニアカはNG
333デフォルトの名無しさん:2013/10/29(火) 22:55:24.16
ニワカのことかと思ったわ
334デフォルトの名無しさん:2013/10/29(火) 23:14:45.45
>>261
インデックスレジスタとかぁ
SP相対とかぁ
335デフォルトの名無しさん:2013/10/29(火) 23:15:45.71
>>288
どっちからもコネクトできるやつはないのかねRS232Cみたいなやつとか
336デフォルトの名無しさん:2013/10/29(火) 23:16:39.48
>>298
あれNFSは今はどうなってるの?
337デフォルトの名無しさん:2013/10/29(火) 23:20:18.34
どの実装もとっくの昔にtcpがデフォルトに変わったろ
338デフォルトの名無しさん:2013/10/29(火) 23:42:57.07
DNS, SNMP, RIP, DHCP, NTP,...
339デフォルトの名無しさん:2013/10/30(水) 00:01:35.96
そらブロードキャストするのは無理だわな
340デフォルトの名無しさん:2013/10/30(水) 00:21:33.31
>>335
TCPじゃなくてNIC直接操作すれば双方向になるよ(ドヤ
341デフォルトの名無しさん:2013/10/30(水) 00:26:07.50
そこはIPだろ
マジバカだな
342デフォルトの名無しさん:2013/10/30(水) 00:26:15.31
>実際にサーバー側でのヒット処理もダメージ処理も確定してないのに、
>攻撃の度に表示される数値

48時間以内にこんな話出た?
343デフォルトの名無しさん:2013/10/30(水) 00:40:20.02
>>342
じゃあ、一体いつの状態の表示なわけ?
ヒットが確定したあとの表示?違うだろ?
少しはまともに反論しろや
344デフォルトの名無しさん:2013/10/30(水) 00:42:03.08
何がこんな話出た?だよ
最初から意味不明な妄想仕様語ってるてめえの話だよ
345デフォルトの名無しさん:2013/10/30(水) 00:47:39.13
>ヒットが確定

これがどういう状態を示してるか知らないけど、
ダメージが表示されるのはヒットした後。
厳密に言えば、例えば剣で攻撃したら、剣が敵にヒット判定が出たその後、表示するんだよ。
厳密に言えばその順だけど同フレーム内の出来事。

そしてダメージはリアルと違ってヒットする前にあらかじめ計算可能でしょ。
346デフォルトの名無しさん:2013/10/30(水) 00:51:12.05
>ダメージ処理も確定してないのに、
>攻撃の度に表示される数値
これマジで誰が言ったの?
該当レス番よろ
347デフォルトの名無しさん:2013/10/30(水) 01:01:54.52
>>346
287じゃね?
348デフォルトの名無しさん:2013/10/30(水) 01:04:28.04
>>345
それは表示ダメージのヒットの判定がクライアントサイドで
サーバー側ではヒットが確定しないうちに数値を表示するって意味だろ?

ラグっても、実際にはギリギリ範囲外で当たってなくても、
表示だけはされる数値なんて最初から信用されるわけないんだよ
349デフォルトの名無しさん:2013/10/30(水) 01:32:49.26
>ラグっても、実際にはギリギリ範囲外で当たってなくても
え?
クライアントで当たってるなら当たってる判定が出るだろ
ラグが200msあるならサーバで200ms前のMOBの位置とキャラの位置くらい再現して当たり判定できるだろ
350デフォルトの名無しさん:2013/10/30(水) 01:36:11.69
>>349
できねーよ馬鹿
回線止めりゃチートし放題だ馬鹿
351デフォルトの名無しさん:2013/10/30(水) 02:03:02.34
>回線止めりゃチートし放題だ
回線止めるのと何の関係が?回線止めたところでMOBはサーバで動き続けてるんだよ?
回線止めてクライアントの画面でMOBを停止させてもサーバのMOBの位置は動き続けるから、
回線止めて止まったMOB叩きまくって回線開けて流しても、それはサーバで動き続けてたMOBの位置を再現すればズレるから攻撃も外れる、チートするだけ不利

●キャラ
■MOBの実際の位置
□回線止めたキャラから見たMOBの位置

t=0 回線停止
●■

t=1 1秒後
●□■
MOBを殴る

t=2
●□ ■
殴って殴って殴りまくる

t=3
●□  ■
必殺技をぶちかます

t=4 回線解放、殴ったデータを流す
●    ■

時間をさかのぼって実際の位置を再現して当たり判定を行うから
サーバではt=1〜3の●と■の位置でチェックが行われる、つまり全部外れる
あんたの言う通り確かに当たってないのにダメージは表示されるが
チートしてる奴の画面でそうなるだけだから一般プレイヤーには関係ない
352デフォルトの名無しさん:2013/10/30(水) 05:39:29.19
VC++を使ってるのですがカーソルの移動で十字キーを使うのはしんどいです
emacsみたいな設定にできないんですか
353デフォルトの名無しさん:2013/10/30(水) 06:04:22.55
>>351
>回線止めたところでMOBはサーバで動き続けてるんだよ?
それMOやFPSでしたっていう逃げ道が無くなるわけだが

>あんたの言う通り確かに当たってないのにダメージは表示される
それ同じ結論になりそうなんだが

>チートしてる奴の画面でそうなるだけだから一般プレイヤーには関係ない
そっちは一般プレイヤーが常に500ms以上ラグるから、先にダメージ表示するって主張だ
だから大いに関係あるんだよ

今度は敵も自分もサーバーとのラグ以上に速い動作はしないって前提で話を進めるか?
それとも先に表示すると整合性取れないと認めるか?
354デフォルトの名無しさん:2013/10/30(水) 08:05:40.34
>>352
昔は epsilon(=emacs) とか wordstar とか選べたと記憶しているが今はどうなんだろう?
355デフォルトの名無しさん:2013/10/30(水) 08:45:12.18
Emacs emulationってのを入れればいいんじゃね?
356デフォルトの名無しさん:2013/10/30(水) 11:33:14.74
>それMOやFPSでしたっていう逃げ道が無くなるわけだが
MMORPG限定の話じゃなかったのか?

>それ同じ結論になりそうなんだが
なにと?

>そっちは一般プレイヤーが常に500ms以上ラグるから、先にダメージ表示するって主張だ
>だから大いに関係あるんだよ
500msとか言ってないだろ
チートしてる奴の画面でなるだけなのに一般プレイヤーに関係あるわけないだろ

>今度は敵も自分もサーバーとのラグ以上に速い動作はしないって前提で話を進めるか?
どこからそういう前提が出てくるんだ?

>それとも先に表示すると整合性取れないと認めるか?
実際に先に表示して整合性取れてるがね
357デフォルトの名無しさん:2013/10/30(水) 12:55:42.53
>>356
>500msとか言ってないだろ
お前さ、もう少し吟味してレスしろよ。
遅れるから先に表示するって主張なんだから、
遅れること自体否定したら、先に表示する意味ないと認めたも同然だろ。
358デフォルトの名無しさん:2013/10/30(水) 14:58:44.01
>>357
遅れるとは言ってるが500msとは言ってない
200msかもしれないし、800msかもしれない

クライアント側で攻撃がMOBにヒットしたフレームにサーバにデータを送った場合、
サーバ側からダメージの計算結果を同じフレームに得ることが保証されないと言っている

だからそれは現在ではかなり解決されていて、タイムラグが100msのプレイヤーも500msのプレイヤーも、
クライアントで攻撃がヒットしたフレーム(見た目のラグ=0ms)でダメージが表示される実装について話している

但し、100msのプレイヤーも500msのプレイヤーもMOBに対して攻撃した場合の、
それぞれのクライアントで見た自分のキャラとMOBの間でラグが発生しないという話であって、
それぞれのプレイヤーがお互いを見れば600msのラグが生じる
359デフォルトの名無しさん:2013/10/30(水) 15:30:14.34
たかだか0.5秒にこだわるゲームヲタは気違い。
社会に出てみろ、バスでも何でも0.5秒くらいいくらでも遅れるから。
ゲームヲタってやっぱり気違いなんだな。
360デフォルトの名無しさん:2013/10/30(水) 16:21:42.39
>>359
社会は広いよ
バスの遅延時間をナノ秒以下で気にするところもあるし
361デフォルトの名無しさん:2013/10/30(水) 16:33:13.59
イプシロンロケットが発射直前で止まった原因もそれだな
362デフォルトの名無しさん:2013/10/30(水) 16:38:09.83
>>359
0.5秒実際に測ってみろよ
363デフォルトの名無しさん:2013/10/30(水) 16:48:56.91
コンパイラってやつをインストールするには絶対に住所年齢などの個人情報をどこかに登録して手に入れる方法しかないんですか?
安心できるコンパイラを使いたいのですが個人情報は売りたくないです
364デフォルトの名無しさん:2013/10/30(水) 16:59:52.25
>>363
gcc
365デフォルトの名無しさん:2013/10/30(水) 17:11:42.72
最近はコンパイラってパッケージ販売してないの?
366デフォルトの名無しさん:2013/10/30(水) 17:12:25.27
>>363
金払うんでなければ偽名捨てアドでもいいし
367デフォルトの名無しさん:2013/10/30(水) 17:14:02.04
イプシロンのOSはなんだったんだろ
もちろんRTOSだよね
368デフォルトの名無しさん:2013/10/30(水) 17:15:41.97
369デフォルトの名無しさん:2013/10/30(水) 17:31:46.90
コンパイラじゃないものをコンパイラと呼んでいる疑惑
370デフォルトの名無しさん:2013/10/30(水) 17:33:18.11
>>360
どこだよそれw
371デフォルトの名無しさん:2013/10/30(水) 17:35:32.11
>>359-360
こやつめハハハw
372デフォルトの名無しさん:2013/10/30(水) 18:12:48.15
バス違いか
373デフォルトの名無しさん:2013/10/30(水) 20:41:08.30
ユニバーサル尻アル
374デフォルトの名無しさん:2013/10/30(水) 20:46:05.61
      ↑ブスッ
375デフォルトの名無しさん:2013/10/30(水) 20:50:27.60
ブラゲはフラッシュが固まっても勝手に戦ってるときあるよ。
これもニアカするとわかるよ。
まあ勝手に戦って負けるんだけどね。
376デフォルトの名無しさん:2013/10/30(水) 21:06:40.64
大阪にはユニバーサル シリアル ジャパンがあります
377デフォルトの名無しさん:2013/10/30(水) 21:16:19.97
wwwwwwwwwwwwwwwwwwww
378デフォルトの名無しさん:2013/10/30(水) 21:16:55.05
上は誤爆
379デフォルトの名無しさん:2013/10/30(水) 21:17:19.35
>>374
女の子にペニバンでアナル突いてもらってみ。
上手い女の子にされると骨抜きになるよ。

もう恥ずかしいとか何とか言ってる場合じゃなくなって男でもよがり声上げて悶えるよ。
腰も頭も完全に溶けてもう何されてもいいって状態になる。

もっと上手い女の子になると開発して射精なしでアナルでイけるようにしてくれたり、
そうやって開発してからは寸止めや生殺しで気が狂いそうになりまでねちっこく責めてくれる。
しかもアナルでイった場合は賢者モードにならずに快感がずっと尾を引くから、イった後もゆっくり動かされたりするとたまらない。

何回もされたことあるけどあれはヤバい。
380デフォルトの名無しさん:2013/10/30(水) 21:28:12.86
そういえば、全然関係ないけど
SUNとかHP-UXとかAIXとかNEWSとかって
もう完全に息の根が止まった?
381デフォルトの名無しさん:2013/10/30(水) 21:36:40.48
SUNは虫の息
今度のアプデで更に人が減ると予測されてる

加速すぎてすでにMMORPGとしては機能してないけど
382デフォルトの名無しさん:2013/10/30(水) 22:23:35.71
AIXはDB2との抱き合わせでまだあるんじゃね?
HP-UXは名前忘れたけど冗長構成組めるFSがあって
テレコム系で使われてた希ガス

NEWSはさすがに滅んだだろ
383デフォルトの名無しさん:2013/10/30(水) 22:51:41.78
k&rを勉強してsqlite位なら小さいし読めるかなと思ったらifdefの山だし英語だしで諦めました
将来的に英語は勉強するんでとりあえずもっと簡単なアプリとか自分の環境以外のifdefをまるごと消せるツールを教えてください
環境はubuntu12.04です
384デフォルトの名無しさん:2013/10/30(水) 22:58:33.03
switch 文 で default を使う場合なのですが。
参考書の例では、全ての case の後、つまりswitch文の最後に記述されている
ことが多いです。

switch() {
 case 1: break;
 case 2: break;
 default:
}

ところがネット等で、たまに case の前に default を使っているソースを見かけます。

switch() {
 default: break;
 case 1: break;
 case 2:
}

この場合、実行してみると default は「1 と 2 以外」という感じで、一応動いているのですが。
case よりも前に default を置く記述方法は、C言語の仕様としては正しい使い方ですか?
385デフォルトの名無しさん:2013/10/30(水) 22:59:21.91
正しい
386デフォルトの名無しさん:2013/10/30(水) 23:02:40.05
分かりました、ありがとうございます
387デフォルトの名無しさん:2013/10/30(水) 23:17:30.32
ifdef消すツール…プリプロセッサがまさにソレ
たぶん思ったものと違う動作をするだろうけど

マジレスすると、htags使うと少し幸せになれるかも
388片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/10/30(水) 23:18:25.86
>>383
unifdef
389デフォルトの名無しさん:2013/10/30(水) 23:36:06.34
>>388
ここにくるまえにググって読んだときはいちいち指定しないと使えないものかと通りすぎましたが環境によって自動で出来るのだったらかなり理想的なので明日実験してみます
390デフォルトの名無しさん:2013/10/30(水) 23:52:35.83
>>387
プリプロセッサ後のソースは上級者向け過ぎますw
globalは使って感動しました。geanyより読みやすかったけど知らないdefine定義がいっぱいあって結局挫折し自動化を期待してここにきました
391デフォルトの名無しさん:2013/10/31(木) 00:41:53.80
emacsでhideif
392デフォルトの名無しさん:2013/10/31(木) 01:48:10.69
>>356
>チートしてる奴の画面でなるだけなのに一般プレイヤーに関係あるわけないだろ
ラグスイッチじゃチートかどうかなんて判別つかないじゃん
393デフォルトの名無しさん:2013/10/31(木) 06:30:07.44
>>391
emacsでglobal使えるとは。
hideifはたぶん求めていたそのものです
問題はemacs
敷居が高いですが試してみます


ifdefを除去するツールはこれらを試して後程報告します
簡単なアプリって皆さんは何から始めたのか教えて頂けたら嬉しいです
394デフォルトの名無しさん:2013/10/31(木) 11:11:18.24
普通は、何か作りたいものがある(作る必要がある)から、Cを習うんだが
395デフォルトの名無しさん:2013/10/31(木) 11:30:30.48
アプリなんか作ってどうするのよ
周りのみんなは受験勉強やら自己啓発で資格取得やら親しい友人と親睦深めたりしてるのに
プログラミングなんかしてても受験、就職、出世、何の評価にも繋がらないぞ
しかも10年も経てば今やってることなんざ時代遅れの何の役にも立たない糞知識と化すの分かってるのに
時間とエネルギーの無駄TOEICの勉強でもしてた方がなんぼかマシだったな残念
396デフォルトの名無しさん:2013/10/31(木) 11:37:43.48
受験には役に立ったな
就職にも少しは役に立ったかも知れない
たしかに出世には役に立たなかったし
人間関係においては害ですらあった
397デフォルトの名無しさん:2013/10/31(木) 11:39:09.93
あと語学で言えば
英語はもちろんだけど
これから役に立つのは
ドイツ語
フランス語
中国語
朝鮮語
だよ
三国人は嫌いだけど
敵を知ることは大事
398デフォルトの名無しさん:2013/10/31(木) 13:04:50.60
ヘブライ語やヒンディー語もいりそう
399デフォルトの名無しさん:2013/10/31(木) 13:18:53.46
Cは通過点
400デフォルトの名無しさん:2013/10/31(木) 15:28:14.00
objective-cでアプリ作ろう!
401デフォルトの名無しさん:2013/10/31(木) 15:39:34.18
>>394
違う
C はコンピュータエンジニアが最低限学ばなければならないイロハのイ
402デフォルトの名無しさん:2013/10/31(木) 16:34:39.53
Cは基幹部やらコマンドライン専用機
それ以外もできなくはないがする必要もない
Cでアプリを作ろうとするのがそもそもの間違い
C++ならまだなんとかなるかもしれんが

モバイルは人気だしJavaでもobjective cでも使えば何か出来るんじゃない?
403デフォルトの名無しさん:2013/10/31(木) 16:59:43.55
>>402
用語もめちゃくちゃなドシロウトがw
404デフォルトの名無しさん:2013/10/31(木) 17:07:38.67
プログラミング言語を「専用機」と言うのは確かにユニークだな。
405デフォルトの名無しさん:2013/10/31(木) 17:10:02.14
そうは言ってないだろ
406デフォルトの名無しさん:2013/10/31(木) 17:23:49.38
>>402
こいつアプリ(アプリケーションソフトウェア)の意味も分かってないなw
ほんまに C を少しでもかじったことあるんかいな?
407デフォルトの名無しさん:2013/10/31(木) 18:03:10.21
>>405
もろに言ってるだろw
408デフォルトの名無しさん:2013/10/31(木) 18:11:15.57
ではプログラム言語を基幹部とも言っているのか?
409デフォルトの名無しさん:2013/10/31(木) 18:16:28.71
アスペなの?
410デフォルトの名無しさん:2013/10/31(木) 18:22:43.95
>>408
君があの()>>402なの?
411デフォルトの名無しさん:2013/10/31(木) 18:49:02.44
言おうとしてることはなんとなくわかるな。
412デフォルトの名無しさん:2013/10/31(木) 18:50:09.07
>>411
じゃぁ解説よろ
413デフォルトの名無しさん:2013/10/31(木) 19:02:31.99
厨語翻訳β                     0.32s
- Cはシステム記述やコマンドのような低レイヤに使うと良い。
- ユーザーに近い層も処理できるがあえてそうする必要は薄い。
- 応用ソフトはCよりC++を使って楽するといい。
- 人気のモバイルはJavaやObjective-Cを使うのでは?

だから何?って程度の話のようです。
414デフォルトの名無しさん:2013/10/31(木) 19:05:57.27
Cをアセンブラ、C++やJavaをCと置き換えて>>402を読み換えたら分からんでもないな。
二昔前、MSXやPC88などでのゲーム開発はアセンブラだっただろう。
一昔前、PC98やWin95はCになりアセンブラで開発なんて普通は考えなくなっただろう。
現在は、C++やC#やJavaなどを使えば良いのであって、わざわざCで書かなくても良いと思わないか?
Cを知っているに越したことは無いが、必須ではない。
パフォーマンス(速度・サイズ)の必要な場面ではCが活きるだろうけど。
415デフォルトの名無しさん:2013/10/31(木) 19:08:51.60
そう言いたかったんだろうね。
416デフォルトの名無しさん:2013/10/31(木) 19:15:00.64
次々と馬鹿が湧いてくるな
てか、自演?
417デフォルトの名無しさん:2013/10/31(木) 19:19:39.98
俺が自演するときは「Cなんか時代遅れ、Perl同様のゴミ、これからはJavascript」という
文脈で語るけどね。
一日200レス付くのを目標にする。

なんでこのスレだけ勢いあるの?

俺が自演したから。

こんな感じ。
418デフォルトの名無しさん:2013/10/31(木) 19:26:39.67
さて今日もスレ伸ばすか!と思って見に行ったら既に自演してる人がいたね。
http://toro.2ch.net/test/read.cgi/tech/1382656209/699
419デフォルトの名無しさん:2013/10/31(木) 20:11:10.98
質問なんですが、
関数に変数のポインタを渡して初期化してもらう事をライトバックって言いますか?
420デフォルトの名無しさん:2013/10/31(木) 20:13:13.36
>>383です
とりあえずの報告

unidef:やはりシンボルを指定しないと消えない
hideif:emacsの使い方で困ったがコードを畳むだけなので便利。include元で定義されても関知しない

ifdefを消したい一番の理由が自分の環境以外に関係する部分を削除することなので(_WIN32_WCEってなんだろうみたいなやつです)include元を調べなかったら僕の用途には向かないということになります
globalを使って一つずつ調べるしか無さそうです

作りたいものというかsqliteとかnginxが読みたくてCの勉強を始めたのでもっと小さなものを探してもう一度頑張ろうと思います
421デフォルトの名無しさん:2013/10/31(木) 21:55:41.72
>>401
残りの「ロ」と「ハ」はなんですか
422デフォルトの名無しさん:2013/10/31(木) 22:29:00.07
>>421
あなたは日本人ですか?
「いろはのい」と言った場合の「いろは」は、いろは47文字を指します。
423デフォルトの名無しさん:2013/10/31(木) 22:47:41.93
visual studio 2010のインテリセンスなんだが
ctrl+space打たないと出てこない。
何故だ?有効になってるんだが。
テンプレはwin32のコンソールです。
424デフォルトの名無しさん:2013/11/01(金) 00:26:59.72
>>419
どっちかというとコールバックが‥‥全然近くないねえ
425デフォルトの名無しさん:2013/11/01(金) 01:31:23.21
>>419
記憶装置の書き込み方式と混同するから言わない
426419:2013/11/01(金) 05:28:57.34
>>424,425
ありがとうございます。
やっぱりその意味では使いませんよね。
427デフォルトの名無しさん:2013/11/01(金) 08:05:59.18
>>419
言わない。
キャッシュ制御でライトバックと言う語が用いられていて、そのイメージがついてるから。
>>419 の意味でライトバックとか言ってる奴はあまり知識ないから、無視できるなら無視すべき。
無理なら、適当に話合わせときゃいい。
428デフォルトの名無しさん:2013/11/01(金) 08:50:14.39
C/C++は知ってて当たり前
今普及してる言語のほとんどは
C/C++をもっと判りやすく使いやすく便利にしたものだから
429デフォルトの名無しさん:2013/11/01(金) 09:29:04.53
>>401
今時Cを学ぶ必要がある人間は少ないだろう
Cが必要とされるのは低レイヤだけ
ゲームや言語処理系はC++だし
430デフォルトの名無しさん:2013/11/01(金) 09:59:57.26
ガチ C なものはそこいら中にあるし
ゲームが C++ だけって違和感ありあり
言語処理系を C++ で書こうとした禿は反対の嵐に遭遇した
431デフォルトの名無しさん:2013/11/01(金) 11:12:19.37
コールバック関数ってイベント駆動型関数以外に何かありますか?
イベントのみですか?気になったんで。
432デフォルトの名無しさん:2013/11/01(金) 11:14:20.54
システムから定期的にコールされるのもコールバックって言うけど。
433デフォルトの名無しさん:2013/11/01(金) 11:15:46.89
標準関数の qsort に渡すのもコールバック関数だべ

抽象配列(コンテナ)の比較をイベントじゃないと考えるなら
434デフォルトの名無しさん:2013/11/01(金) 11:17:24.33
定期的っていうのも、イベントといえなくはない?
435デフォルトの名無しさん:2013/11/01(金) 11:22:54.29
再帰関数はコールバックといえるの?
436デフォルトの名無しさん:2013/11/01(金) 11:28:45.21
>>435
言えない
437デフォルトの名無しさん:2013/11/01(金) 11:29:43.10
>>436
何で?呼び出されるじゃん。
438デフォルトの名無しさん:2013/11/01(金) 11:32:41.54
バックじゃねえ
439デフォルトの名無しさん:2013/11/01(金) 11:33:11.39
俺の認識では
インターフェースとして 関数のポインタを与える形で渡す ような奴
440デフォルトの名無しさん:2013/11/01(金) 11:39:19.25
関数ポインタを渡して呼んでもらう関数のことだな。
441デフォルトの名無しさん:2013/11/01(金) 11:46:49.72
要は割り込みだろ
442デフォルトの名無しさん:2013/11/01(金) 11:52:29.59
違います
callback、日本語で言うコールバックの意味を考えれば分かるはず
443デフォルトの名無しさん:2013/11/01(金) 11:54:48.67
>>439
cにインターフェースはない
javaにはある
444デフォルトの名無しさん:2013/11/01(金) 12:16:01.77
>>437
呼び出される関数がコールバックだとするなら
コールバックでない関数は割り込みハンドラだけになるぞ

>>443
文法だけやっとおぼえたのか
それともJavaのインターフェイスとわずかでも違うものは
インターフェイスではないという傲慢か
445デフォルトの名無しさん:2013/11/01(金) 12:20:11.87
>>444
C言語にはインターフェイスがない
演算子以外のトークンは全て関数
446デフォルトの名無しさん:2013/11/01(金) 13:03:06.48
C言語の説明だけど点数で評価してくれ。

C言語とは今から50年〜60年前にアメリカで開発された高級プログラミング言語である。
当時はパソコンが無かったためC言語は理想的な言語とされ、実用化されることはなかった。
1970年頃からコードを入力できるパソコンが開発され、C言語は学問機関や研究所に普及するようになった。
1990年中ごろにWindows95が発売され、C言語を使用できる環境も同時に発売された。
これによって一般人も簡単にC言語が組める時代に突入した。
現在、工業高校や専門学校、大学など情報学科ではまず最初にC言語を習う事になっている。
447デフォルトの名無しさん:2013/11/01(金) 13:04:55.64
>>446
いくらなんでもひどい20点
448デフォルトの名無しさん:2013/11/01(金) 13:07:48.25
>>446
アホか
449デフォルトの名無しさん:2013/11/01(金) 13:12:54.16
>>446
名誉毀損以前に風紀紊乱罪かわいせつ物頒布等の罪で逮捕されるレベル
450デフォルトの名無しさん:2013/11/01(金) 13:14:55.21
>>.445
恥ずかしすぎる…
451デフォルトの名無しさん:2013/11/01(金) 13:16:46.58
おまいらは馬鹿なんだから黙ってればいいのに…
小学校の時、母ちゃんに言われただろ?
452デフォルトの名無しさん:2013/11/01(金) 13:23:55.10
ネタだよな?
453デフォルトの名無しさん:2013/11/01(金) 13:45:20.20
Wikipediaによると
> C言語(Cげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって作ったプログラミング言語である。
らしいがデニスリッチー氏はもっと前、そうだな、1956年頃に既に構想はあったかも知れんな。
>>446の通り理想的な言語として、彼の頭の中に。
454デフォルトの名無しさん:2013/11/01(金) 13:59:01.49
実は >>452 氏が >>446 だったという驚愕の事実 (・o・)
455デフォルトの名無しさん:2013/11/01(金) 14:26:02.87
>>446
死ね
456デフォルトの名無しさん:2013/11/01(金) 15:14:21.90
>>430
歴史的経緯以外だとまともに今からCで作るなんてあり得ない

処理に速度が必要な科学技術計算でもnumpyですむし

どこ見たらそこいら中にあるんだよ
457デフォルトの名無しさん:2013/11/01(金) 15:36:31.60
numpy の中身は...いや なんでもない
458デフォルトの名無しさん:2013/11/01(金) 15:50:14.80
>>457
Cがそんなに優れてるならガワつけないで直接C使えば
459デフォルトの名無しさん:2013/11/01(金) 16:00:33.92
逆だろ
C言語が糞だというならセルフホストすればいいだけだろ?
なんでしないの?
460デフォルトの名無しさん:2013/11/01(金) 16:11:27.17
>>459
だから低レイヤにはいいって言ってる
バカなの?
461デフォルトの名無しさん:2013/11/01(金) 16:28:45.57
今Cで作ると有難がられるソフトってどんなソフト?
462デフォルトの名無しさん:2013/11/01(金) 16:37:17.14
挿したボードのドライバーとやりとりするライブラリ
463デフォルトの名無しさん:2013/11/01(金) 16:40:59.80
>>462
デバイスドライバ以外だと?
464デフォルトの名無しさん:2013/11/01(金) 16:42:39.61
>>460
いつ言ったの?
465デフォルトの名無しさん:2013/11/01(金) 16:46:47.18
>>461
出来上がってしまえば何でも同じじゃないの?
466デフォルトの名無しさん:2013/11/01(金) 17:07:52.96
>>465
どういう発言かよるが、
できあがる品質を考慮していないなら全然違う
467デフォルトの名無しさん:2013/11/01(金) 17:10:17.48
検索エンジンで「Ctrl+F」で語句検索できるようなソフトCで作りたいんですが
さすがに不可能ですかね?
468デフォルトの名無しさん:2013/11/01(金) 17:10:25.99
>>461
ユーザが実行したバイナリで不具合発生時に吐かれるスタックトレースを受けて
デバッグする場合、Cのスタックトレースは追いやすいがC++の吐いたスタックは
解析が難しくなる。
結構重要だと思うんだけどな。
469デフォルトの名無しさん:2013/11/01(金) 17:14:50.76
>>467
検索エンジンへのアドイン?
Googleの検索画面とかを想定してるんだったら、あれは手元PCにエンジンは無いけど?
470デフォルトの名無しさん:2013/11/01(金) 18:18:21.59
組み込みはCだよ
ヒープ使っちゃいけないような奴
471デフォルトの名無しさん:2013/11/01(金) 18:24:51.34
使っちゃいけない、というか無い場合もあるんだよな。
RAMはスタック256bytesのみ、とか。
472デフォルトの名無しさん:2013/11/01(金) 18:36:19.67
>>466
品質どうこうは関係ないだろ?
言語には
473デフォルトの名無しさん:2013/11/01(金) 18:42:52.92
>>456
ほら、君の大好きなそれ
作ったのは学生さんだよ
474デフォルトの名無しさん:2013/11/01(金) 18:58:41.00
スタックは8段までで
RAMはコードとは別空間ですが
475デフォルトの名無しさん:2013/11/01(金) 19:33:32.31
コードはROM。
ワークエリア(グローバル変数)やスタック(リターンアドレスとauto変数)を
わずかなRAMで色々やりくりして使う。
476デフォルトの名無しさん:2013/11/01(金) 21:05:27.38
>>467が何を言ってるか分からない
477デフォルトの名無しさん:2013/11/01(金) 21:57:44.22
>>471
いや、RAM がそれなりにあっても使っちゃいけないと言うこともある。
実行時間が保証できなくなるから。
478デフォルトの名無しさん:2013/11/01(金) 22:32:37.80
>>477
それはシステム構成に起因するものではなく、
処理の都合に起因するものだよね。
479デフォルトの名無しさん:2013/11/01(金) 23:04:18.50
MMUに向かってページ切り替え依頼を出したりするからな
ページメモリ切り替えて読んで書き込んでページメモリ切り替えて戻ってきてやっと次のPCへ掛かるとかなんかクラクラするだろ?
480デフォルトの名無しさん:2013/11/01(金) 23:51:13.00
>>477
車載とかだと時間より信頼性の問題だな
481デフォルトの名無しさん:2013/11/02(土) 00:49:03.33
>>479
そういう都合があるのですね。なるほど盲点。

ただそれだと保持するデータはレジスタやりくりになると思うんだけど、
そうなるとCで制御し切れるんでしょうか。
register int i; とかインラインアセンブラ多用ですか。
482デフォルトの名無しさん:2013/11/02(土) 00:51:46.26
あ、いや、レジスタのみでやりくりですか?とは極端だったかな。
ページ(メモリウィンドウ・バンク)内で処理をおさめる、という意味かな。
483デフォルトの名無しさん:2013/11/02(土) 05:43:30.05
ポインタを倍化しといてimmediate だったらそのままIO命令を突っ込み variable だったら上位で分岐。
よっぽどムダに柔軟なコンパイラでもなけりゃスタックは境界を越えない生ポ平屋造りで相対的にチョッ早や
484デフォルトの名無しさん:2013/11/02(土) 09:15:35.07
>>478
何を言いたいんだ?

>>480
ハードリアルタイムでググってこい。
ブレーキ踏んで 10秒後にちゃんと効く車に乗りたいか?
て、言うか時間を守れると言うのも、信頼性の一部だよ。
プログラムでも実社会でも。
485デフォルトの名無しさん:2013/11/02(土) 11:39:12.84
>>484
malloc/free使わないのが、時間制約だけの問題だと思ってるの?
すごいね、へー
486478:2013/11/02(土) 12:01:37.12
>>484
> 何を言いたいんだ?

>>477>>471に対して
> いや、RAM がそれなりにあっても使っちゃいけないと言うこともある。
というから、ローカル変数やグローバル変数すら使っちゃいけないのか…?
と思って>>484を書いたんだ。

>>477>>470の話の補足としてバンク切り替えやmalloc/freeも考慮に入れた話だとしたら
「RAM がそれなりにあっても使っちゃいけない」場合があるのはまあ分かるんだが
>>471の構成だったらその可能性は普通考えないじゃない?
だから>>478と書いたのであって
487デフォルトの名無しさん:2013/11/02(土) 12:03:31.72
>>486
× > というから、ローカル変数やグローバル変数すら使っちゃいけないのか…?
  > と思って>>484を書いたんだ。
○ > というから、ローカル変数やグローバル変数すら使っちゃいけないのか…?
  > と思って>>478を書いたんだ。
488デフォルトの名無しさん:2013/11/02(土) 16:13:30.54
スレッド5つ立てて
全スレッド内で
while(1){
usleep(1);
}
かましたらCPU使用率が50%越えるがこんなものかね?
スレッドがこの程度の負荷のかかるものかどうか知らんから質問

CPU 2.8GHz デュアルコア

ちなみにApacheのhttpdは0〜0.3%程度
489デフォルトの名無しさん:2013/11/02(土) 16:20:26.34
>>485
malloc/free使わないのが、時間制約「だけ」なんてどこにも書いてないんだけどね (w
490デフォルトの名無しさん:2013/11/02(土) 16:23:54.03
>>486-487
まず、ちょっと落ち着け
何を言いたいのか、ますますわからん
491デフォルトの名無しさん:2013/11/02(土) 16:34:05.07
>>488
I/O待ちが無く割り当てられた時間全てを使い切るから一見高負荷に見える
492デフォルトの名無しさん:2013/11/02(土) 16:47:23.01
>>488
100%行ってほしいってことかいな
493デフォルトの名無しさん:2013/11/02(土) 16:55:26.14
Quick C 懐かしす
494デフォルトの名無しさん:2013/11/02(土) 16:58:15.28
>>491
そういうことか
心配おっぱいナッスィング!ってことだな
サンクス

>>492
ちゃうわァホ
495デフォルトの名無しさん:2013/11/02(土) 18:33:31.42
Asioっぽいものを実装すると、Windowsではプロセッサを使い切ってしまうけど、
Linuxはかなり余裕があるよ。
Linuxはスレッドが弱点なのかな。
496デフォルトの名無しさん:2013/11/02(土) 18:49:04.14
芝エビって高級食材なんですかね?
497デフォルトの名無しさん:2013/11/02(土) 20:21:07.90
きときと
498デフォルトの名無しさん:2013/11/03(日) 03:53:31.83
芝エビ、小エビ、芝浦で取れたエビ、ポインタ
なんか文章つくろうと思ったけどポインタもわからんし
今回の件もよくわからん
499デフォルトの名無しさん:2013/11/03(日) 09:49:11.37
シャンソンの女王、エビノ・ピラフ
500デフォルトの名無しさん:2013/11/03(日) 13:48:56.27
選り好みくすキーボード
501デフォルトの名無しさん:2013/11/03(日) 15:38:14.92
血液型性格判断とかを信じてるやつは例外なく池沼。
真っ先にプロジェクト要員から外す。
異論は認めんし異論を唱えるやつも外す。
502デフォルトの名無しさん:2013/11/03(日) 15:49:16.29
1秒間に何十回と頻繁に呼び出されるような関数の変数ってstatic付けといたほうがいい?
メモリの確保が最初だけだから速くなる?
体感で分からない程度でも理論上速くなるなら付けとこうかと思うんだが
503デフォルトの名無しさん:2013/11/03(日) 15:56:23.60
「付けてみたらたまにおかしな動きをするようになった」とか言い出す悪寒。
504デフォルトの名無しさん:2013/11/03(日) 16:01:55.51
何十回かよw
十万回くらいなら意味あるかも。
505デフォルトの名無しさん:2013/11/03(日) 16:03:50.32
B型は嫌われるからなあ。
血液型で性格判断されたらたまらんよなあ。
B型にだっていい人はいる。
そう思ってほしい。
まあいないんだけどさ。
506デフォルトの名無しさん:2013/11/03(日) 16:08:35.28
>>502
staticってあんま速いってイメージないな
auto変数なら大量に宣言してなきゃレジスタに割り付けるだろうし
507デフォルトの名無しさん:2013/11/03(日) 16:09:43.67
>>505
>B型にだっていい人はいる。
この発言自体が池沼
おまえはプロジェクトから外す。
508デフォルトの名無しさん:2013/11/03(日) 16:09:59.20
static つけなきゃレジスタに割り当てられたかもしれないし...
あと、static だと最終結果をメモリーに書き戻さないといけないし...

マジで百害あって一利なし
509デフォルトの名無しさん:2013/11/03(日) 16:14:13.03
はっきり言ってやろう。
全員AB型で編成したチームは協調力ゼロだったが、全て完璧にミッションを終了した。
彼らは他のメンバーの血液型を全く気にしなかった、てか、興味も示さなかった。
510デフォルトの名無しさん:2013/11/03(日) 16:19:13.37
>>502
staticじゃない変数は、多くても少なくても関数呼び出しのスピードに影響ないよ。
511デフォルトの名無しさん:2013/11/03(日) 16:19:33.42
関数中の変数でstatic付けるのは、前回の変数残したい場合か、スタック溢れるほどでかいメモリ食う時くらいか
512デフォルトの名無しさん:2013/11/03(日) 16:19:35.59
AB型も裏表があると言われるよなあ。
AB型にだって正直な性質の人もいる。
そう思ってほしい。
まあいないんだけどさ。
513デフォルトの名無しさん:2013/11/03(日) 16:30:03.62
static const か const static かそれが問題だ
514デフォルトの名無しさん:2013/11/03(日) 16:37:31.09
>>510
実装によるよ
スタックポインタをずらして領域をアロケートするときに 64KB 以下と以上で命令長が変わるプロセッサーもある (68K とか)
515デフォルトの名無しさん:2013/11/03(日) 16:37:59.00
なんかよく分からないけど付けないほうが良さそうだな
付けずにいくよ
ありがとう
516デフォルトの名無しさん:2013/11/03(日) 16:57:14.14
>>514
じゃあやっぱ変数のサイズはなるだけ小さいほうがいいんだな。
517デフォルトの名無しさん:2013/11/03(日) 16:58:50.34
518デフォルトの名無しさん:2013/11/03(日) 16:59:51.43
>>517
おいwww
519デフォルトの名無しさん:2013/11/03(日) 17:02:16.81
>>517
この顔どこかでみたことあるな
520デフォルトの名無しさん:2013/11/03(日) 17:04:48.48
俺もどっかで見た
521デフォルトの名無しさん:2013/11/03(日) 17:11:02.12
ずん?みたいな名前の芸人に似てる
522デフォルトの名無しさん:2013/11/03(日) 17:14:52.31
>>509
B型でもそうなると思うよ
523デフォルトの名無しさん:2013/11/03(日) 17:15:32.83
>>511
>スタック溢れるほどでかいメモリ食う時
は malloc() だろうに
524デフォルトの名無しさん:2013/11/03(日) 17:16:21.82
>>517
誰だ?!
525デフォルトの名無しさん:2013/11/03(日) 17:18:17.96
>>516
他が全く同じなら
それでも微々たるもんだし、そんなこと気にする前にアルゴリズムとかデータ構造気にしろとは思うけど
526デフォルトの名無しさん:2013/11/03(日) 17:26:47.38
>>523
いつもヒープ禁止な環境なもんで
RTOSのタスクスタックに影響出るような場合に、ってことで許してつかあさい
527デフォルトの名無しさん:2013/11/03(日) 17:33:13.94
>>516
一部の環境でたまに差があるって程度で、基本は変数のサイズの違いで関数呼び出しに差が出るってことはないと思うよ。
528デフォルトの名無しさん:2013/11/03(日) 18:15:37.82
マルチスレッドにしたら勝手にマルチコアを活用してくれる?
529デフォルトの名無しさん:2013/11/03(日) 18:21:39.87
>>524
IT関連のテクニカルタームを検索するとよく引っかかるが、
全然役に立たない検索作業のノイズページを書いてるゴミクズ
530デフォルトの名無しさん:2013/11/03(日) 18:52:56.20
マロック
531デフォルトの名無しさん:2013/11/03(日) 18:54:58.17
俺はエムァロケって言ってますけど。
532デフォルトの名無しさん:2013/11/03(日) 19:17:40.25
ケはないわ
533デフォルトの名無しさん:2013/11/03(日) 19:52:12.82
>>519-520+524 ぐぐれ検索結果に表示されるいくらとかいう奴のグロ画像
534デフォルトの名無しさん:2013/11/03(日) 20:30:42.77
ゲームの画像出力も何もないスケルトンのスレッド作ったんだけど15735fpsをマーク!
はえーーーwwwwwwwwwwwwwwwwww
535デフォルトの名無しさん:2013/11/03(日) 20:42:05.58
俺も去年そんな感じのやったけど997fpsしか出なかった。
536デフォルトの名無しさん:2013/11/03(日) 20:46:18.75
じゃあ俺は60fpsぴったり
537デフォルトの名無しさん:2013/11/03(日) 20:47:15.69
ソケット作って入れたら1500fps近く下がった・・・・・
それでもまだ14000fps前後wwwwwwwwwwwwwww
538デフォルトの名無しさん:2013/11/03(日) 20:55:44.51
ゲームプログラムなら俺に聞け29
http://toro.2ch.net/test/read.cgi/tech/1381578085/
539デフォルトの名無しさん:2013/11/03(日) 21:04:58.35
意味の無いfps値でなに自慢してんだか
540デフォルトの名無しさん:2013/11/03(日) 21:17:13.08
>>539
悔しいのうw
悔しいのうw
541デフォルトの名無しさん:2013/11/03(日) 21:20:52.08
>>539
顔真っ赤wwwwwwwwwww
542デフォルトの名無しさん:2013/11/03(日) 21:21:23.87
>>539
よう低スペ
543デフォルトの名無しさん:2013/11/03(日) 21:23:32.66
>>539
お前どうせ2000FPSくらいしかでないんだろ?
ダッセ
544デフォルトの名無しさん:2013/11/03(日) 21:26:51.26
フレーム作成してないのにfpsってちょっと意味わかんないですね
545デフォルトの名無しさん:2013/11/03(日) 21:32:37.09
連続で書き込むな低スキル
546デフォルトの名無しさん:2013/11/03(日) 21:56:51.31
>>545
自演認定やめてくれますー?w
547デフォルトの名無しさん:2013/11/03(日) 22:01:10.21
潮の満ち引きのアルゴリズムを教えてください
検索しても出てきません
満潮時刻と干潮時刻さえ計算できればいいです
548デフォルトの名無しさん:2013/11/03(日) 22:25:13.02
>>547
天文年鑑に載ってたよ
549デフォルトの名無しさん:2013/11/03(日) 22:57:15.00
ここよく読めばわかるかも
http://tide736.net/

面倒ならここで計算してくれる
http://keisan.casio.jp/exec/system/1258467122

ただ、あくまで概略計算にすぎないので、誤差で船舶事故とか起こしても自己責任で。
550デフォルトの名無しさん:2013/11/03(日) 23:19:34.25
>>549
プログラムにしたいから計算してくれたら困るw
上のやつでいいよ、ありがとう
月と太陽と地球の位置関係だから、
月の公転周期と、地球の自転公転周期の簡単なsin、cosの式になると思ってたけど
そうは問屋が卸さないようですね
551デフォルトの名無しさん:2013/11/04(月) 02:42:43.96
CでPostgreSQL操作してたら、データを返すコマンドが成功したときにPGRES_TUPLES_OKが返ってくるが、
これは何と読めばいいのだろうか、特に真ん中のやつ。



・・・チュプルズ?



.
552デフォルトの名無しさん:2013/11/04(月) 02:49:38.96
タプルだろ知障
553デフォルトの名無しさん:2013/11/04(月) 03:23:53.40
PGRES_TUPLES_OK==ピージーレス・タプルだろ知障・オーケー
554デフォルトの名無しさん:2013/11/04(月) 03:29:21.62
ん?
555デフォルトの名無しさん:2013/11/04(月) 08:38:30.38
>>550
地軸の傾きとか
海水の粘性とか
海底や湾岸の地形とか
色々考慮した補正をしてるのかな
556デフォルトの名無しさん:2013/11/04(月) 10:08:24.70
金星がよくみえる。宵の明星
557デフォルトの名無しさん:2013/11/04(月) 10:57:22.49
重力の到達する速度とか
558デフォルトの名無しさん:2013/11/04(月) 11:02:40.48
>>551
日本語だとタプル
英語だとあなたの言った読み方が多い
559デフォルトの名無しさん:2013/11/04(月) 11:03:14.19
配列要素の境界調整って、型のサイズそのままでいいの?
配列にmemcpyで書き込む関数作ったけど、全部の処理系で上手くいくのか不安
http://codepad.org/Tw73GEBE
560デフォルトの名無しさん:2013/11/04(月) 11:06:28.45
>>559
20年前の記憶ではwindowsとUNIX系では配列の仕組みが異なると思う。
561デフォルトの名無しさん:2013/11/04(月) 11:12:48.44
この時代にunixでプログラム書いてる奴が、>>559みたいな書き込みするかお
562デフォルトの名無しさん:2013/11/04(月) 11:45:04.14
>>559
うまくいくよ。
563デフォルトの名無しさん:2013/11/04(月) 11:45:43.08
>>559
失敗するよ。処理系でだめなのある
564デフォルトの名無しさん:2013/11/04(月) 11:50:34.95
組み込み系でクソッタレなmemcpy実装してて駄目なのもあるがそんんあもんはそんな糞処理系で動かすようになってから考えていい
565デフォルトの名無しさん:2013/11/04(月) 12:27:43.47
>>560
何それ
kwsk
566デフォルトの名無しさん:2013/11/04(月) 13:33:05.66
memcpyは自分で実装できるとして、配列って境界調整関係なくパディングなしで配置されるのかなと思って
567デフォルトの名無しさん:2013/11/04(月) 14:17:44.96
パディングしたらその部分がもったいない
568デフォルトの名無しさん:2013/11/04(月) 14:25:04.94
元々paddingしてる型なら個々に当然入るが、それがどうしたと
569デフォルトの名無しさん:2013/11/04(月) 16:22:12.39
returnの詳しい解説のサイトなどございますか?
570デフォルトの名無しさん:2013/11/04(月) 16:23:07.38
ダメだったら組み直せばいい 直して他に影響が出る部分でもないだろう
とりあえずテストコードをつけといて忘れろ
571デフォルトの名無しさん:2013/11/04(月) 16:36:56.01
>>569
BOOL KAISETSU_ARIMASUKA() {
return NO;
}
572デフォルトの名無しさん:2013/11/04(月) 16:46:38.30
>>569
returnはスタックポインタが変わるの
573デフォルトの名無しさん:2013/11/04(月) 17:10:01.55
わざとやってるだろw
574デフォルトの名無しさん:2013/11/05(火) 01:12:33.47
if(...) と#if ... の違いって何ですか
575デフォルトの名無しさん:2013/11/05(火) 02:09:11.76
処理する段階が違う

ビルド(広義のコンパイル)は大体
・前処理
・(狭義の)コンパイル
・アセンブル
・リンク
って段階に分かれていて、#ifは前処理時に、ifはコンパイル時に
それぞれ処理される
576デフォルトの名無しさん:2013/11/05(火) 07:38:09.97
>>574
#ifはコンパイル時点でソースコード自体を変えることが出来るもので(Windows用、Linux用の切り替えとか)、
ifはソースもコンパイルされた実行形式も同じで、実行時にその時の変数の値とかを見て動的に処理を変えるもの
577デフォルトの名無しさん:2013/11/05(火) 11:22:35.28
PC1にある画像ファイルをマイコンで取得し、マイコンからPC2へ出力するといったプログラムを作成したいです
PC1→マイコン→PC2 マイコン自体のメモリが少ないためシリアル通信で行えばいいのかなと考えています
PC1とマイコンとPC2の間はUSBケーブルで接続しています
そもそもマイコンから2台のPCのポートを開いてデータを送受信することは可能なのでしょうか?
初心者なので的外れな質問をしていたら申し訳ありません><
578デフォルトの名無しさん:2013/11/05(火) 11:43:16.18
http://www.sanwa.co.jp/product/syohin.asp?code=KB-USB-LINK3
こういう製品が存在するのだから可能
579デフォルトの名無しさん:2013/11/05(火) 12:18:04.13
>>577
それハード屋さんの分野だね。そういうおもちゃを自作するのは実に楽しい。
580デフォルトの名無しさん:2013/11/05(火) 14:46:24.77
>>577
クロスLANケーブルつないだらいいだけじゃ・・・、wifiでつないでもいいし・・・っていう話は置いておいて
”マイコンで取得し”という事はマイコンが親になるのかな
ホストとデバイスをどこにするかで考え方が変わると思う
581デフォルトの名無しさん:2013/11/05(火) 15:56:04.81
そういう用途なら bluetooth とか IrOBEX とか
582デフォルトの名無しさん:2013/11/05(火) 15:57:55.44
たとえばだが、FT232R を使う場合など、ホストという概念がいらない
583デフォルトの名無しさん:2013/11/05(火) 16:01:40.74
転送ケーブル(>>578みたいなもの)を作りたいのか
マイコンから制御してパソコンのストレージにアクセスしたいのかで
答えが変わってくるはず
584デフォルトの名無しさん:2013/11/05(火) 16:03:10.13
なんでわざわざ間に変なもの挿むんだろう。
585デフォルトの名無しさん:2013/11/05(火) 16:10:30.61
USBだと挟まないと作れないよ
LANやシリアルとは違う
586デフォルトの名無しさん:2013/11/05(火) 21:10:29.79
プログラマーです。
Cを始めたいのですが、winでの開発環境は何がおすすめですか?こだわりは特にないので、ユーザーの多い環境希望です。
587デフォルトの名無しさん:2013/11/05(火) 21:11:45.56
Visual Studio
588デフォルトの名無しさん:2013/11/05(火) 21:11:58.63
Cもできないプログラマってのもいるんだな
589デフォルトの名無しさん:2013/11/05(火) 21:13:37.29
Webプログラマってやつかね?
590デフォルトの名無しさん:2013/11/05(火) 21:26:26.79
Web系 + 業務アプリなので、ruby,js,vbなどをやっていました。

せっかくなので使ったことのないものを使ってみたかったのですが、やはりvisual studioが一番なのですね。
ありがとうございました。
591デフォルトの名無しさん:2013/11/05(火) 21:43:59.88
Cは万能ですか?
つまりCではどんなプログラムでも書けますか?
それともCでは書けないけれど他の言語なら書ける
プログラムって有りますか?
592デフォルトの名無しさん:2013/11/05(火) 21:59:40.27
アセンブラが万能です
593デフォルトの名無しさん:2013/11/05(火) 22:31:40.46
>>591
チューリング完全かどうかってこと?
594デフォルトの名無しさん:2013/11/05(火) 23:32:01.80
チューリング完全という言葉を知ってる人間がこんな質問しないと思う

>>591
言語による能力の差というのは基本的にはない
ただ、ライブラリとそのAPIがないとできないことというのはある
簡単な例だと、awkでソケットプログラムを書けみたいなのは無理
Cは低レベルのAPIが揃っているのでOSが許す範囲で何でも書ける
「書ける」ことと「容易に書ける」こととは別だが
595デフォルトの名無しさん:2013/11/05(火) 23:38:41.09
C なんてCんどいだけだよ‥‥
596デフォルトの名無しさん:2013/11/05(火) 23:48:26.52
審議中(AAry
597デフォルトの名無しさん:2013/11/06(水) 00:07:50.13
>>594
良回答の見本だな
598デフォルトの名無しさん:2013/11/06(水) 00:28:05.10
よくCは低級なプログラムが書けるというが
実際にそこまで上達できるヤツってどんだけいるの?

OSカーネルなんかをメンテしてるとか、ドライバ書いているやつなんて極一握りだろ
599デフォルトの名無しさん:2013/11/06(水) 00:30:24.25
>>594
無知にも程があるだろ
600デフォルトの名無しさん:2013/11/06(水) 00:41:40.80
601デフォルトの名無しさん:2013/11/06(水) 00:46:45.90
それはgawkであって、awkじゃない
602デフォルトの名無しさん:2013/11/06(水) 01:09:56.36
VCであってCじゃないって良いそうだな
603デフォルトの名無しさん:2013/11/06(水) 01:42:21.82
GCC は C じゃないって言ってるようなもんかよ
(もち GNU C Compiler の意味な)
604デフォルトの名無しさん:2013/11/06(水) 02:02:37.98
言語の能力の話してるのに、その拡張した実装の能力の話を持ってくるなってことだよ
605デフォルトの名無しさん:2013/11/06(水) 02:04:20.59
>>604
>Cは低レベルのAPIが揃っているのでOSが許す範囲で何でも書ける

どこが言語の能力の話なんですか?
606デフォルトの名無しさん:2013/11/06(水) 02:06:30.56
>>598
Windowsに限っていえばそうだね
607デフォルトの名無しさん:2013/11/06(水) 05:58:45.37
チューリング完全は、知ったか君が嬉々として語る話題の典型。
現実のリソースは有限ですからー!
いくら強弁しても、実装に他言語使ってる時点で破綻してますからー!
608デフォルトの名無しさん:2013/11/06(水) 08:23:09.29
>>605
言語+標準的なAPIの能力の話と修正しとくよ
あとつつける重箱の隅は?
609デフォルトの名無しさん:2013/11/06(水) 09:01:13.28
OCamlで書く、jsやLispでevalする。
CでOCamlの型システムを実現する、evalする。

言語の能力なんて全然違うと思うが。
610デフォルトの名無しさん:2013/11/06(水) 10:27:43.85
>>605
恥ずかしい香具師だな
611デフォルトの名無しさん:2013/11/06(水) 13:13:30.25
mutexにinit関数とイニシャライザマクロが有りますが何が違うんですか
ついでにmutex型のfloatとかはどうやって作るんですか?
612デフォルトの名無しさん:2013/11/06(水) 14:03:56.38
>>577です。返事が遅くなり申し訳ありません
将来的にPC1をカメラに置き換えて、カメラ+マイコン→PCへ画像データを送信していきたいのです
現在カメラの用意ができていないこともあり、PC1をカメラに見立ててやってみようと考えていました
現在使っているのはArduino unoというマイコンで、このスレに質問したのもArduino言語とC言語が似ているという理由からでした
613デフォルトの名無しさん:2013/11/06(水) 14:27:02.61
>>611
1)動的に初期化したい場合、デフォルト属性以外で初期化したい場合
  初期化処理で初期化したい場合、その日の気分などで関数の方を使う
2)?
614デフォルトの名無しさん:2013/11/06(水) 14:30:03.11
>>612
釣りじゃなくて本気なら
こっちで聞いた方が良い
http://uni.2ch.net/denki/
615デフォルトの名無しさん:2013/11/06(水) 14:56:13.95
>>612
USBはホスト(PC)と周辺機器の区別がある
PCはカメラの代わりにならないし、その逆もまた不可能
616デフォルトの名無しさん:2013/11/06(水) 15:46:01.76
ホスト的なカメラ(のボード)も作るのかもしれないじゃんw

ともかく、ここより、電気電子板のUSBスレかArduinoスレへ。
617デフォルトの名無しさん:2013/11/06(水) 16:28:43.27
>>613
どう表現すればいいのかわからないのでスレッドセーフなfloat型をそう表現しました
618デフォルトの名無しさん:2013/11/06(水) 16:53:05.01
ふつうのfloat型をmutexと組み合わせて使ってください
619デフォルトの名無しさん:2013/11/06(水) 17:01:21.47
カメラ2台繋いで立体画像認識するのかも知れない
620デフォルトの名無しさん:2013/11/06(水) 19:50:05.16
KINECT のことか
621デフォルトの名無しさん:2013/11/06(水) 19:58:01.15
2台はPS4 Eyeでは
Kinectは1台のはず
622デフォルトの名無しさん:2013/11/06(水) 23:23:36.84
eclipseでC言語を始めた者です。
コンソールに日本語を出力することはできたのですが、
ウィンドウに出力すると文字化けします。
以下のコードに追加で何か必要でしょうか?それともeclipseの設定等でしょうか?

#include <windows.h>
#include <stdio.h>

int WINAPI WinMain(HINSTANCE hInstance , HINSTANCE hPrevInstance ,
PSTR lpCmdLine , int nCmdShow ) {
printf("文字化けしない");
char chStr[128];
wsprintf(chStr , "インスタンスハンドル : %d" , hInstance);
MessageBox(NULL , chStr , TEXT("文字化けする") , MB_OK);

return 0;
}
623片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/06(水) 23:31:26.26
TCHAR chStr[128];
wsprintf(chStr, TEXT("インスタンスハンドル : %p"), hInstance);
624デフォルトの名無しさん:2013/11/06(水) 23:36:57.09
入力された文字列を逆順に表示するプログラムを作りたいのですが
ここから先どう書けばいいのかまったくわかりません。
countとデクリメントを使うといいよと言われたのですが
どなたかヒントを教えていただけないでしょうか?


#include<stdio.h>
#include<stdlib.h>
#define N 51

int main( void ){
char *ptr;
int count=0;

if(( ptr=( char* )malloc( N*sizeof( char ) ) )==NULL){
fprintf( stderr, "memory allocation fault.\n" );
exit( 1 );
}//配列の動的メモリ確保をしました

printf( "入力された文字列を逆順に出力します。\n50文字以内の文字列を入力してください。:" );
scanf( "%[^\n]%*c", ptr );//空白、タブも読み込ませます

while( *ptr!='\0' ){//NULL文字になるまで
625片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/11/07(木) 00:24:13.94
while (ptr[count]) count++;
while (--count >= 0) putchar(ptr[count]);
putchar('\n');
626デフォルトの名無しさん:2013/11/07(木) 00:43:55.56
下記ファイルをコンパイルしたところ、エラーにならず、実行結果も問題ありませんでした。
$gcc -o main main.c mod0.c

main.cにはmod0.c用関数呼び出しにはmod0.hが必須だと考えて
いたのですが、これは間違いでしょうか?

<main.c>
#include<stdio.h>
/*#include"mod0.h"*/
int main(void){
int i = 10;
printf("func0(%d)=%d, func1(%d)=%d",i,func0(i),i,func1(i));
return 0;
}

<mod0.h>
#ifndef __MOD0_H__
#define __MOD0_H__
int func0(int);
int func1(int);
#endif

<mod0.c>
int func0(int x){ return x*x;}
int func1(int x){ return x + x;}

[開発環境]
OS:Windows 8 32bit
コンパイラ: gcc 4.8.1(MinGW)
627626:2013/11/07(木) 00:46:47.21
日本語が一部、変になってしまい申し訳ありません。
下記の様に訂正します。

>main.cにはmod0.c用関数呼び出しにはmod0.hが必須だと考えて
>いたのですが、これは間違いでしょうか?

main.cにはmod0.c関数呼び出し用のプロトタイプ宣言mod0.hが必須だと
考えていたのですが、私の認識は間違いでしょうか?
628デフォルトの名無しさん:2013/11/07(木) 00:48:18.57
mod0.h のプロトタイプ宣言に extern 付けてコンパイルしてみ
629デフォルトの名無しさん:2013/11/07(木) 00:49:53.96
コンパイラがあてずっぽうにint型を返す関数だとみなしてコンパイルした結果。戻り値の型をfloatに替えて試せ
630デフォルトの名無しさん:2013/11/07(木) 00:52:58.13
>>628
関数プロトタイプ宣言に externは不要
631デフォルトの名無しさん:2013/11/07(木) 00:55:03.21
>>627,630
extern不要でした。すまんかった
632デフォルトの名無しさん:2013/11/07(木) 00:55:37.34
>>626
visual studioだとできなかった
環境によるのかな
633デフォルトの名無しさん:2013/11/07(木) 00:59:18.95
>>626
g++だと引っかかるんじゃね
Cってプロトタイプ宣言しないでも勝手にリンクしてくれるよな
634デフォルトの名無しさん:2013/11/07(木) 01:13:23.77
gcc -Wallだろう
635626:2013/11/07(木) 01:20:33.03
>>628-634
レスありがとうございます。
float型にして、同様のプログラム作成した所、
コンパイルエラー無しでしたが、実行結果に問題が発生しました。

gccではヘッダファイルが無くても、
int型の関数としてリンクするという仕様だと理解しました。

-Wallオプションで実行した所、
implicit declaration of function
という警告が発生しました。

main2.c:6:2: warning: implicit declaration of function 'func3' [-Wimplicit-function-declaration]
main2.c:6:2: warning: format '%f' expects argument of type 'double', but argument 3 has type 'int' [-Wformat=]
main2.c:6:2: warning: format '%f' expects argument of type 'double', but argument 5 has type 'int' [-Wformat=]

今後は、極力 -Wallオプションを多用します。
636デフォルトの名無しさん:2013/11/07(木) 01:28:52.91
今からCなんてやってどうするんだ

全く使われてねーのに
637デフォルトの名無しさん:2013/11/07(木) 01:30:49.99
-Wall -Werror
の方が良い。
638デフォルトの名無しさん:2013/11/07(木) 01:36:18.78
覚え方は大きな壁(Wall)を取り除く(-)

-Wall
639デフォルトの名無しさん:2013/11/07(木) 01:37:40.68
626じゃないけど、>>637のオプションでエラーになった
知らなかったありがとう
640デフォルトの名無しさん:2013/11/07(木) 01:43:22.15
>>636
Unix界隈じゃバリバリですお
いい加減C++に移行してほしいお・・
641デフォルトの名無しさん:2013/11/07(木) 01:44:29.61
warning allだろう
642デフォルトの名無しさん:2013/11/07(木) 01:56:58.13
組み込みとか低レベル部分にSTLとか使われた日にゃ、堪らんのですよ
643デフォルトの名無しさん:2013/11/07(木) 02:02:27.20
>>635
ヘッダなしでもmainのソースでextern float func(int)とかすれば規格上は問題ないんじゃね
行儀はよくないけど
まあともかく、プロトタイプ宣言なりextern使うってことで
644デフォルトの名無しさん:2013/11/07(木) 02:17:54.79
>>640
そんな貴方に、D言語。
645デフォルトの名無しさん:2013/11/07(木) 02:22:57.22
>>642
STLなんて遅いし、普通使わないだろ
646デフォルトの名無しさん:2013/11/07(木) 03:33:48.79
Boostの間違いだな
647デフォルトの名無しさん:2013/11/07(木) 05:14:13.95
PhoenixやSpiritを組み込み用に・・・ゴクリ
648622:2013/11/07(木) 22:50:52.45
>>623
すみません。ご教示いただいた方法では文字化けが直りませんでした。
他に何か確認すべき箇所はございますか?
649デフォルトの名無しさん:2013/11/07(木) 23:25:27.16
>>648
お前がレスをしてるそいつは初心者に嘘回答をすることで有名なコテだぞ。
今回はそうやって結果がすぐに出たから嘘だと気付けたけど、
もっと手の込んだ、パッと見上手く動作するけどしばらく稼働させてたらメモリリークで落ちるようなバグ、を仕込ませてくる。
そういうバグを仕込まされると後々原因が分かりにくくて苦しむことになる。
初心者にバグを仕込ませるのはかなり上手いから気をつけろ、中級者でも見抜けないバグを仕込ませてくることがある。
だからとりあえずNGリストに入れておけ。
650デフォルトの名無しさん:2013/11/07(木) 23:58:32.85
>>648
何故wsprintfなの?
色々あるんだけど、そのコードからすると、sprintfでいいんじゃね?
651デフォルトの名無しさん:2013/11/08(金) 00:06:14.86
>>623は、TCHARとか使ってるから_stprintf()だね。
でもいまどきwin9x対応とかしなくていいだろうし、ワイド文字固定のほうがスッキリする。

WCHAR chStr[128];
swprintf(chStr, L"インスタンスハンドル : %p", hInstance);
652デフォルトの名無しさん:2013/11/08(金) 00:19:56.66
>>651
w系使うなら、MessageBoxWじゃないとダメな
653デフォルトの名無しさん:2013/11/08(金) 00:26:57.92
654デフォルトの名無しさん:2013/11/08(金) 02:16:25.86
>>652
kwsk
655デフォルトの名無しさん:2013/11/08(金) 05:31:10.75
cmd.exeはマルチバイト
656デフォルトの名無しさん:2013/11/08(金) 09:23:57.45
ポインタの演算って内部でどんな計算してるか教えて欲しいんだけど

int mat[なんとか];
っていう感じの時に添字の中身の方は整数型なら何でもいいの?
shortを入れたらintにキャストしてたりとかしてない?
なるべく高速化したいので、ちょっと質問。
657デフォルトの名無しさん:2013/11/08(金) 09:44:07.00
>>656
pointer演算は最適化の肝なので、大抵バリバリに最適化するから余り気にしなくていい。
普通、intより狭いpointerはないのでshortを使う理由は殆どないな。
気になるなら、コンパイラのアセンブリ出力機能を使って出力されたアセンブリをを検討すればいい。
658デフォルトの名無しさん:2013/11/08(金) 09:57:03.68
本当に気になるなら、アセンブリ出力して見比べるといい
「なるべく高速化したい」ならアセンブリ言語読めるようにすべし
659656:2013/11/08(金) 10:55:37.66
>>657>>568
アセンブリ読解難しそうだけど調べてみます

FPUモジュールにベクトル演算用の命令セットとかあるけど
「単精度」専用だから、コンパイラはfloatなら上手に
使ってくれてるんだろうか・・・?
とか高速化を考えると必要な知識増えそう
660デフォルトの名無しさん:2013/11/08(金) 11:12:48.63
実測して比較
コンパイラの最適化におまかせ
661デフォルトの名無しさん:2013/11/08(金) 11:27:42.64
>>648
お前がどこかで間違えてる

>>651
wsprintfがWindows APIだって分かってる?
662デフォルトの名無しさん:2013/11/08(金) 12:05:58.43
BMP画像を取得して送信先で画像を復元させたいのですが、バイナリデータ?でやり取りするんですかね?
663デフォルトの名無しさん:2013/11/08(金) 12:29:02.96
BMP形式はバイナリだけど通信路はテキストにする方法もある
メ−ルでBMP画像を添付で送るときみたいに
664デフォルトの名無しさん:2013/11/08(金) 12:50:28.46
>>661
wsprintfだったらwsprintfWだな。
665デフォルトの名無しさん:2013/11/08(金) 12:52:06.33
可変な大きさのものを、ストリームという概念下で伝達しようとする
・バイナリにすると通信量は減るが面倒
・テキストにすると通信量は増えるが終端記号で楽できる
666デフォルトの名無しさん:2013/11/08(金) 13:21:50.31
bmpだったら圧縮しちまえば通信量は減らせるよ。
667デフォルトの名無しさん:2013/11/08(金) 13:23:43.43
>>659
gccだったら、-msse2 -mfpmath=sseでfpuを使わなくなる。
その上で、例えばループ構造がシンプルならベクタ化する。
floatだけで頑張る積もりなら、doubleへの暗黙のキャストが
発生しないように定数や四則演算にも注意が必要。
668デフォルトの名無しさん:2013/11/08(金) 13:31:39.59
キャストじゃなくて格上げ
669デフォルトの名無しさん:2013/11/08(金) 13:45:52.02
ISH か、懐かしい
670デフォルトの名無しさん:2013/11/08(金) 14:08:55.99
俺もish思い出してたw
671デフォルトの名無しさん:2013/11/08(金) 14:10:53.64
MIME はなぜ冗長性や復元機能まである ISH じゃなくて Base64 を採用したんだろ
672デフォルトの名無しさん:2013/11/08(金) 14:42:05.98
日本語のメールって大抵iso-2022-jpコードでしょ。
iso-2022-jpは全角は2bytesだけど、半角/全角の切り替えの制御文字が入るので、
ISHみたいなのはデータサイズが増えるからじゃないのかな。
Shift-JISでISHなら制御文字がいらないから増えないし、base64よりサイズも
小さくなって良いんだろうけど。
673デフォルトの名無しさん:2013/11/08(金) 14:50:30.51
すいません
「数字の文字列(例えば"123"や"9240"など)を引数にとり、その文字の意味するint型の値(上の例では123, 9240)を返す関数を作成せよ。
さらに、少数の文字列("12.3"や"0.0543")を引数にとり、その文字の意味するdouble型の値を返す関数を作成せよ。
※atoi, atof, sscanfなどは使わないこと。」
って問題なんですがさっぱりわからないので教えて下さい
お願いします
674デフォルトの名無しさん:2013/11/08(金) 14:54:22.27
>>672
自分が何を言ってるのか判って言ってるのか?
675デフォルトの名無しさん:2013/11/08(金) 15:01:56.85
まずatoiのソースを読みます
676デフォルトの名無しさん:2013/11/08(金) 15:14:42.83
>>671
ish のテキストへのマッピングで MIME でのブロック構造記述と衝突するような文字( - ハイフン)
の有無かなぁ? Base64 は含んでない
677デフォルトの名無しさん:2013/11/08(金) 15:33:25.98
678デフォルトの名無しさん:2013/11/08(金) 15:54:10.76
ASCII決め打ち?
'0'とか'9'とか書いとけばEBCDICもいけるよ
679デフォルトの名無しさん:2013/11/08(金) 16:40:05.61
freeしたメモリってどういう状態になってるんですか?
全部1111111111111111111と同じ符号になってるんですか?
プログラマのみなさん教えて下さい。1111111111111111111という
実際にある情報と混線しないんですか?
680デフォルトの名無しさん:2013/11/08(金) 16:45:38.70
普通0になると思わない?
681デフォルトの名無しさん:2013/11/08(金) 16:50:46.76
>>680
じゃぁ0000000という列が使っているメモリにもあったとしたら混線しませんか?
682デフォルトの名無しさん:2013/11/08(金) 16:54:10.28
プラナリアからメガロサウルスに劇的な進化を遂げた679に向かって
ナメクジウオ680がなんか的外れな呟きを投げるカオス
683デフォルトの名無しさん:2013/11/08(金) 16:58:17.39
>>677
ありがとうございました!
なんとか理解できました
684デフォルトの名無しさん:2013/11/08(金) 17:00:33.56
混線って何だよw
685デフォルトの名無しさん:2013/11/08(金) 17:04:16.62
実装による
free 状態で "使ってない" ということを別の場所に覚えておくようなのが多い

メモリの内容が とあるパターン(仮にパターンAと呼ぼう)と一致した場合には未使用である
という管理もありえなくは無いけど、
 使用中であり、メモリ読み書き作業の過程でパターンAが絶対に出てこないことが保障できる
場合に限られるからな
686デフォルトの名無しさん:2013/11/08(金) 17:06:31.92
>>679
その後のmallocされ使いまわされる事がなければそのままだよ
687デフォルトの名無しさん:2013/11/08(金) 17:15:21.53
別の値が書き込まれるようなことはなくて
「テナント募集中」の張り紙が貼られるだけ
688デフォルトの名無しさん:2013/11/08(金) 17:19:20.30
>>687
そのテナント募集中っていうラベルが書き込まれてるんじゃないの?
689デフォルトの名無しさん:2013/11/08(金) 17:19:55.68
free 後のメモリに対してアクセスしてバグる(タングリングポインタっての?)
こういうのを捕まえられるようにデバッグモードだと特定の値で埋めるようなコンパイラがあった希ガス
690デフォルトの名無しさん:2013/11/08(金) 17:23:04.99
>>679
メモリのどこが使われていてどこが空いてるかという情報が管理されていて、
freeすると、ここからここまでのメモリが空いたという情報がその管理簿に載る
691デフォルトの名無しさん:2013/11/08(金) 17:23:43.27
int my_alloc[100];  /* alloc で渡すメモリ */
int is_free[100];   /* テナント募集中かどうかの札入れ */
692デフォルトの名無しさん:2013/11/08(金) 17:26:04.51
もっと家賃下げろ
693デフォルトの名無しさん:2013/11/08(金) 17:30:58.43
空室ガラガラ
694デフォルトの名無しさん:2013/11/08(金) 18:00:25.85
>>677
壮大にバグってるな
695デフォルトの名無しさん:2013/11/08(金) 18:03:26.16
>>677
壮大にバグってるな
696デフォルトの名無しさん:2013/11/08(金) 18:09:36.55
なんでや 将大関係ないやろ
697デフォルトの名無しさん:2013/11/08(金) 18:28:18.09
電波ってパルス波なんですか?
無線LANでノーパソに電波来るじゃないですか?
1010101010101っていう情報はパルス波なんですか?
698697:2013/11/08(金) 18:31:17.01
基本情報目指してるんですけどね…
全然わからん
699デフォルトの名無しさん:2013/11/08(金) 18:32:34.35
電波は正弦波じゃね
700697:2013/11/08(金) 18:34:22.21
>>699
周期は一定ですか?どうやってるんでしょう?
延々とビット列を送らないといけないわけじゃないですか?
701デフォルトの名無しさん:2013/11/08(金) 18:36:48.81
電波・変調でググれ
俺もよく分からん
702デフォルトの名無しさん:2013/11/08(金) 18:50:51.95
ぐぐったカス
ttp://ascii.jp/elem/000/000/458/458953/

搬送波の上にビット列を載せる
振幅でやるか(AM) 波の粗密でやるか(FM) 色々ありそうだがな
703デフォルトの名無しさん:2013/11/08(金) 18:50:46.79
いいのかわかんないけど行ってみたら?

基本情報技術者 part382
http://ikura.2ch.net/test/read.cgi/lic/1382289269/
704デフォルトの名無しさん:2013/11/08(金) 19:55:00.80
>>576
if()でも最適化されて条件命令と通らない方のロジックが消されるときもある
705デフォルトの名無しさん:2013/11/08(金) 19:57:11.10
if(高度な頭脳の持ち主){
   俺だけ
  }else{
   ここより↓
706デフォルトの名無しさん:2013/11/08(金) 19:59:07.64
>>702
PMもあるし
CDMAなんていうのも昔流行った
707デフォルトの名無しさん:2013/11/08(金) 20:12:21.26
今のコンピュータってグレースケールで何段階なの?256?
コンピュータによっては65536段階もあるの?
708デフォルトの名無しさん:2013/11/08(金) 20:17:40.58
大学の研究室で、ある見えにくい物を可視化するシステムをいまから作ろうとしてる者です。

今週の情熱大陸を見て衝撃を受けました。
プログラマの真鍋大度氏が作ったtradersという作品を見て「これだ!」と思いました。
真鍋大度氏の作品はどれも線が細やかで美しいのですが、こういった作品はどのよう言語、またはライブラリを使ってつくられているのでしょうか?

http://youtubeowaraitv.blog32.fc2.com/blog-entry-35861.html
tradersはの20分〜です
709デフォルトの名無しさん:2013/11/08(金) 20:25:42.90
>>707
普通は256段階
65536段階対応のグラボや65536段階対応の液晶モニタもあるらしいね
710デフォルトの名無しさん:2013/11/08(金) 21:06:29.87
>>709
ありがとう。
711デフォルトの名無しさん:2013/11/08(金) 22:57:50.61
C言語どこいった
712デフォルトの名無しさん:2013/11/08(金) 23:33:04.09
>>708
OpenGL、DirectX、SVG
言語やライブラリよりも応用ソフトの方が重要
713デフォルトの名無しさん:2013/11/08(金) 23:50:30.49
>>712
OpenGLで検索すると何を勉強すべきかが見えてきました!
ありがとうございます。
714デフォルトの名無しさん:2013/11/08(金) 23:54:48.55
プログラミングというよりデザインだな
715デフォルトの名無しさん:2013/11/09(土) 01:14:59.22
}
return 0;
}
716デフォルトの名無しさん:2013/11/09(土) 15:03:51.96
>>654
遅レスすまん

順を追うと、元々の質問者が>>622で文字化けしますって事だった
これの原因はMBS環境でWCS関数をぐちゃぐちゃに使っているからだと思った
だから、まずwsprintf じゃなくて sprintf 使えってアドバイスした
printf + MBS で文字化けしないんだから恐らくMBSコンパイルしているとエスパー

そしたら、今時はWCSで統一しなさいというアドバイスが出てきた
コンパイル設定そのままでWCS関数を使いたいなら、
MessageBox も明示的に MessageBoxW を使わないとダメとアドバイスした

…で伝わったかな?
717716:2013/11/09(土) 15:11:33.53
ちなみに、コンパイル設定に依存させたくないなら、
_t 系関数と T 系マクロで統一しないとダメ

どうしても混在させたい場合は文字列の変換が必要になる (wcstombs とか)

Win32APIは自動切換えになるが、
だからこそ場合によっては明示的に A/W 指定が必要になる
MessageBox なら、MessageBoxA と MessageBoxW が実体ね

そろそろスレチかな…
718デフォルトの名無しさん:2013/11/09(土) 15:23:01.96
昔はネットとかでよくTCHARを使えって初心者にアドバイスしてる人がいたけど
世の中のTCHAR(汎用テキストマッピング)を使ったコードの99.9%はマルチバイトか
ワイド文字の片方でしか動かないだろうから、Win9xが現役の時代でもこのアドバイスは
ムダだったな。
719デフォルトの名無しさん:2013/11/09(土) 16:20:35.48
>>718
あの…
マルチバイトかUnicodeのどちらかで動くよう変換されるマクロな訳で…
MBCS向けのライブラリがUNICODEで動かじゃないか!
UNICODE向けのライブラリがMBCSで動かじゃないか!
とかインネン以外の何物でもないぞ
720デフォルトの名無しさん:2013/11/09(土) 16:50:11.49
>>719
どちらかでしか動かないなら、最初から直書きでそれ用に書けばいいだけだと思うけど。
721デフォルトの名無しさん:2013/11/09(土) 17:05:58.25
>>719
汎用テキストマッピングを使えば、コンパイルオプションを切り替えるだけで
ワイド文字にもマルチバイトにも対応できるって話でしょ?

でも実際は、文字列を扱う処理で、ワイド文字でもマルチバイト文字でも
両方で動くように意識して書いてる人は少なかったし、意識してたとしても
両方でコンパイルして動作確認してた人なんてほとんどいなかったでしょ。

動作確認とかそれ以前の問題で、90年代に書かれたVC6以前のコードな
んて、T系のマクロと、生の文字列が混じって、新しいVCでコンパイルしな
おしたらエラーが出まくりみたいなコードばっかりだよ。
722デフォルトの名無しさん:2013/11/09(土) 17:09:08.63
WinMain の引数がいきなり MBCS固定 (LPCTSTR ではなく LPCSTR) で
なんだかなーな感じなんだよね
723デフォルトの名無しさん:2013/11/09(土) 17:14:35.67
そりゃコマンドラインからはいまだに MBS で来る罠
724デフォルトの名無しさん:2013/11/09(土) 17:18:58.41
>722
それはWinMainだからだよ
UNICODEコンパイル設定ならエントリポイントはwWinMainね
725デフォルトの名無しさん:2013/11/09(土) 17:32:35.04
>>720
二度手間じゃん。
ビルドオプションが2つだけなら別途用意してもいいかもしれない
でもさ
Release or Debug
MT or MD
crtのバージョン
ENABLEなんちゃらなど數えきれないオプション含めたら幾通りにもなるよね
で、それぞれ分けるよりは同じようにGenericにしたほうが楽だなという思想

>>721
それは周りの質や時代的な背景などアタナの環境に置ける問題じゃない?
726デフォルトの名無しさん:2013/11/09(土) 17:35:07.30
>>721
それは根本的に違う問題をごっちゃにしてる気がするぞ

まず真っ先に気にするのは、移植性を考慮する必要があるのかどうかだよ
移植性を考慮する必要がないのなら>>718の言うように、最初からTなんて使わないほうがいいと思う

でもね、だからって、汎用テキストマッピングが必要ないなんて結論にはならないよ
そもそも移植性が必要な場合の一手法が汎用テキストマッピングなんだから

WindowsとLinuxで同時開発とか普通にあるだろうし、当時ならwin3.1/9x/2K同時とかあったかもしれん
こういう移植性を必要とする開発では、注意深く実装することでソースコードレベル共通化がかなりできる
汎用テキストマッピングってのはそういう場合に使うんだよ

長文すまん
727デフォルトの名無しさん:2013/11/09(土) 17:36:31.90
>>725
いや、両方でビルドしてテストしてた現場が一般的って主張は無理がある。
そっちのほうが特殊。

VC6時代は99.9%はマルチバイト専用のコード。
それ以降はワイド文字専用のコード。
しかも、それでいいって割り切ってたわけじゃなくて、中途半端にTCHAR使う
イラつくコードばっかり。
728デフォルトの名無しさん:2013/11/09(土) 17:39:11.08
>>726
必要ないとは言ってない。
無駄になっていたって状況を説明してるだけ。
729726:2013/11/09(土) 17:44:34.86
>>728>>727
何となくわかった
中途半端に使われると確かにイラつくのも同意

多分Windowsで完結している>>727の仕事(?)環境では、そもそも移植性なんて気にする必要が無いんだね
無駄になっていったっていうのはあくまで「>>727の環境では」という限定話ということでオケ?
730デフォルトの名無しさん:2013/11/09(土) 17:54:25.20
>>727
繰り返して言うけど
つ それは周りの質や時代的な背景などアタナの環境に置ける問題じゃない?

昔はそうだったんだってな話なら知ったこっちゃない
他でやってくれ
今でもそうなんだってな話なら
気の毒だが
これも知ったこっちゃない
同様に他でやってくれ
そんなコードに触れなければいけない自分の環境を恨め
731デフォルトの名無しさん:2013/11/09(土) 18:01:32.69
>>730
そもそもが「昔はそうだった」って話をしてるんで、昔のことは知らないってことなら
いちいち反論しないでほしいわ。
732デフォルトの名無しさん:2013/11/09(土) 18:04:52.23
PCにぶっさすボードのメーカーのAPI
文字列を受けるのはどうなってたっけかなぁ… (Interface のI/Oボードとか
733デフォルトの名無しさん:2013/11/09(土) 18:07:48.46
いまだって「TCHAR使え」とかドヤ顔でアドバイスするやつは、やめろって感じだわ。
初心者に安直にそんなアドバイスしてるやつって本人でも、UNICODEとMBCSの違いを
吸収できるコード書いてるとは思えん。
734デフォルトの名無しさん:2013/11/09(土) 18:09:42.32
>>730
俺も繰り返し言うけど特殊な状況じゃないよ。
ワイド文字とマルチバイト文字の両方で動くようにしてテストまでやってる現場のほうが特殊。
735デフォルトの名無しさん:2013/11/09(土) 18:12:28.97
>>732
グラボドライバの提供するAPIはMBCSでもTCHARでもUnicodeでもなくcharだった記憶が
736デフォルトの名無しさん:2013/11/09(土) 18:29:24.11
ドライバならふつうOSの内部コードに合わせるわな
737デフォルトの名無しさん:2013/11/09(土) 18:59:40.10
>>731
不毛な昔話でクダを巻くなら他でやって欲しい

>>734
それは文字に頓着しない現場ってだけでしょ
738デフォルトの名無しさん:2013/11/09(土) 19:15:25.02
>>737
そういう「お前の態度が気に入らない」的な話題になってきたってことは、本題のほうではとくに
反論はないってことで了解しました。
739デフォルトの名無しさん:2013/11/09(土) 19:16:27.14
>>737
もちつこう
多分チラ裏だっただけだよ
感想に対してまともに議論してもしょうがない
移植が必要ない環境の人が昔話をつぶやいただけ
そもそも必要のない人に必要性を訴えてもしょうがない
740デフォルトの名無しさん:2013/11/09(土) 19:18:06.70
まあでも両方でコンパイルをとうして、両方で動作確認やテストをやってたって人が
自己申告でさえ現れないって状況をみると、そういうのは特殊な現場なんでしょ。
741デフォルトの名無しさん:2013/11/09(土) 19:19:36.72
ポータビリティ重視派 VS 環境特化派

…に見えるが、
実はお互い他の事情を知らない人たちが罵倒しあっていますw
742デフォルトの名無しさん:2013/11/09(土) 19:23:04.14
>>741
そういう対立軸じゃないでしょ。

現状→Win9xに対応する意味がないから汎用テキストマッピングはムダ
過去→安直にTCHAR使えって言ってる人がいたけど現実は有効に機能してなかった

この点に特に反論できてないし。
743デフォルトの名無しさん:2013/11/09(土) 19:49:16.08
>>742
だから君の環境では、でしょ?
744デフォルトの名無しさん:2013/11/09(土) 19:52:46.51
>>743
99.9%の環境でそうだったね
745デフォルトの名無しさん:2013/11/09(土) 19:53:22.92
>>741がかなり正解では?
確かに>>742は自分の環境でのみを前提に話をしているように見える
まぁ、世の中Windowsが優勢なのは確かだろうけど、
それを言い始めたらそもそもC言語自体余り使わない
そういう意味ではCの開発も特殊かもな
746デフォルトの名無しさん:2013/11/09(土) 19:54:18.30
>>744ワロタ
747デフォルトの名無しさん:2013/11/09(土) 19:56:51.86
VC6のころは、_UNICODEでコンパイルしたらエラーになるようなコードばっかり。
汎用テキストマッピングは破たんしたしくみ。

それを分からないでTCHAR使えって安直に進めてた連中がたくさんいたけど、そういうのはダメだろって簡単な話。
748デフォルトの名無しさん:2013/11/09(土) 20:00:34.09
>>746
まあ常識的に考えたら、_MBCSと_UNICODEと両方でコンパイルして両方でテストしてたなんて
現場が一般的でないってわかるわな。

TCHAR使ってた連中も、汎用テキストマッピングの関数や変数を機械的に使ってただけで
両方で動くか、深く考えて使ってのはごく一部だろ。
749デフォルトの名無しさん:2013/11/09(土) 20:06:55.03
今のC++/Cのワイド文字や、C#やJavaでUTF-16を使ってるところでも、サロゲートペアとか結合文字列に
対応してない書き方してるところはゴロゴロしてそう。

このまえどっかのブログで、UTF-16は固定長文字でない、みたいな記事が訳されてるのを見たから
外国でもそうなんだろうな。
750デフォルトの名無しさん:2013/11/09(土) 20:11:16.71
>>739
そう思った

てか、何故に今更というネタで誰が得するのか不思議
ただのマクロなのにさ。

それよりも
SJISもUTF16LEもとうに終わってるんだから
WindowsAPIにcmd.exe、端末群を整備して欲しいな
751デフォルトの名無しさん:2013/11/09(土) 20:20:02.39
TCHAR使ってるのにUnicodeでエラーになるコードってのは、
Unicode対応するときに修正箇所が少ないほうが良い、っていう
予防措置的なもんでしょ。
752デフォルトの名無しさん:2013/11/09(土) 21:27:46.94
>>748
決め打ちで使い回しの効かないものならベタ書きすりゃいい
でも、そんなコードばっかり書いてる訳じゃないでしょ?
そのためにマクロってのがあるのさ
テストコードもマクロでおk
テストする側が各々試せばいいんだよ
手間は殆ど変わらないんだからさ

それはさすがにないと思うよ
てか
連中

れんじゅう
と再生されてしまった
753デフォルトの名無しさん:2013/11/09(土) 21:37:30.07
で、今はどうすればいいの?
754デフォルトの名無しさん:2013/11/09(土) 21:38:23.21
>>748
どこの常識だよ
お前の環境がレベル低かったって告白されても困る
755デフォルトの名無しさん:2013/11/09(土) 21:42:11.13
良くわからないんだけど、コードのデータと、データのデータは
メモリ上で同じ場所なんですか?

例えば
printf("〜〜");というコードのデータと
int型の100という値を持つ変数xは同じ場所なんですか?
756デフォルトの名無しさん:2013/11/09(土) 21:44:01.18
"" はリテラルといって、純然たるデータだよ
printf がコード
757デフォルトの名無しさん:2013/11/09(土) 21:46:22.67
>>756
〜〜がデータってことですよね?
同じ場所なんですか?
758デフォルトの名無しさん:2013/11/09(土) 21:59:36.45
>>757
「同じ」ってのは、何と何がが必要
〜〜という内容をどこに置いたのかを示す式が ""

むしろ int の 100 が即値といって「コード内に埋め込まれたデータ」である可能性が高く
よって &100 が禁止されている

x という場所に 100 という内容を書き込むと、&x はできる
759デフォルトの名無しさん:2013/11/09(土) 22:04:52.68
>>755
こういうイメージのことを言ってるのかな
ttp://www.bravegnu.org/gnu-eprog/csections.png
760デフォルトの名無しさん:2013/11/09(土) 22:11:27.80
>>758
&amp;100にしたらそれに対応する変数が勝手にできちゃうとかあるんでしょうかね?
761デフォルトの名無しさん:2013/11/09(土) 22:13:59.03
>>753
ワイド文字決め打ちで。

>>754
常識です。
99.9%は両方対応なんて工数のかかることはしてません。
TCHAR使っていたら対応してるって錯覚してただけ。
762デフォルトの名無しさん:2013/11/09(土) 22:15:10.73
>>753
マジレスすると今も昔も変わらないよ
必要であればTCHAR使うし、必要が無ければ使わないってだけ

ただ、必要性もないのに中途半端なTCHAR対応にイラっとするのは確かで、
その点に関してだけはチラ裏の人の気持ちもわかる
基本的に必要もないのに工数掛けてまで開発やテストは出来ないから、
必要になったときに対応すればオケ
763デフォルトの名無しさん:2013/11/09(土) 22:15:48.73
>>760
C++ になら、その方面のネタがあるが
C にはない
764デフォルトの名無しさん:2013/11/09(土) 22:16:21.08
>>761
> 常識です。
> 99.9%は両方対応なんて工数のかかることはしてません。

そこまで言うなら、ソース出してくれ。
765デフォルトの名無しさん:2013/11/09(土) 22:18:02.72
>>761
なんか俺が自演してるみたいに気が合うな
俺が書き込むと、その直後の更新で先に君が書いてるわw
766デフォルトの名無しさん:2013/11/09(土) 22:20:11.93
>>761
もしかして荒らし?
767デフォルトの名無しさん:2013/11/09(土) 22:21:35.72
>>758
できない
768デフォルトの名無しさん:2013/11/09(土) 22:23:20.11
>>763
なるほど
769デフォルトの名無しさん:2013/11/09(土) 22:27:08.79
>>762
いまさらwin9x対応とかないから、現在は必要ありません。
ワイドキャラ決め打ちでいいです。

>>764
99.9%はジョークに決まってるだろ。
機械的に、_t付き関数やTCHARの変数を使って対応したつもりになってただけじゃなくて、
文字列の処理をきっちり両方で動くように作って、両方でコンパイル通して、テストまで
してたってのが一般的だっていうなら、そっちのほうをソース出してほしいわ。
770デフォルトの名無しさん:2013/11/09(土) 22:27:55.36
>>761
普通にやっているよ。
WindowsとMacで共通コード部分をTCHAR使ってる。
もちろんMac側のTEXT定義は自分で作成したけど、
型と名前が違うだけのコードを2つメンテナンスするより楽。
771デフォルトの名無しさん:2013/11/09(土) 22:31:21.28
私たちのマック信仰に偽りはありません。
772デフォルトの名無しさん:2013/11/09(土) 22:49:45.16
>>769
> 機械的に
偏見じゃん
てかちと面白いなw
ある程度自動化してるだろうから機械的な作業と言えるわな
773デフォルトの名無しさん:2013/11/09(土) 23:03:48.48
>>772
自動化してればいいけど、わけもわからずにやってるから、素の関数やらリテラルやらが
混じって_UNICODEにしたらコンパイルも通らないようなコードばっかりだろ。
前世紀のVCのコードなんて。
774デフォルトの名無しさん:2013/11/09(土) 23:04:07.81
せめてLinuxなら0.1%位は信じられたのに……
775デフォルトの名無しさん:2013/11/09(土) 23:12:29.59
>>769
> 99.9%はジョークに決まってるだろ。

いきなり腰砕けかよ (w
776デフォルトの名無しさん:2013/11/09(土) 23:27:36.17
>>775
まあ99.8%かもしれんけど誤差だろ。
777デフォルトの名無しさん:2013/11/09(土) 23:30:25.00
ジョークに誤差とか、バカの上塗り乙 (w
778デフォルトの名無しさん:2013/11/09(土) 23:37:35.80
いやいや「99.9%」とかそこにマジレスかよって感じだけど。
まあ、アスペのふりをしてそういうところくらいしかツッコミ処がないんだろうけど。
779デフォルトの名無しさん:2013/11/10(日) 00:02:18.62
ジョークなら、実際は少ないですって事になるよな
どちらにしろ破綻してるわけだが
780デフォルトの名無しさん:2013/11/10(日) 00:06:00.49
>> 773
コテ付けてもらえない?
とうに終わったネタを持ちだし
被害者面して不幸自慢
その真偽は不明だが本人曰く99.9%
こんなの相手にしようがないよ
781デフォルトの名無しさん:2013/11/10(日) 00:17:44.29
>>780
不幸自慢とかとうに終わったとか、なんでそうなるんだ。
いろいろ勝手に設定つくりすぎだろ。
782デフォルトの名無しさん:2013/11/10(日) 09:49:20.53
>>778
ジョークと言ったり、そこに突っ込むのかよとか、忙しいな (w

まあ、ジョークとして何が面白いのかさっぱりだし、もうレスしない方がいいと思う。
783デフォルトの名無しさん:2013/11/10(日) 11:00:04.30
99.9% って慣用句みたいなもんじゃないの?
「万が一」って単語使って「本当に 0.01% なのかよソース出せ」って言ってるように見える
突っ込むのはそこじゃないだろ
784デフォルトの名無しさん:2013/11/10(日) 12:30:22.89
PGが迂闊に数値を出すのは脇が甘いと言わざるを得ないだろ
785デフォルトの名無しさん:2013/11/10(日) 12:49:30.66
99だろうと99.9だろうとおこちゃまに見られるのは変わりないから安心しろ

突然私が発狂してあなたの頭を金属バットでいきなり殴る確率
より遥かに低いです、と言っとくほうが説得力がある
786デフォルトの名無しさん:2013/11/10(日) 13:14:55.37
>>783
突っ込まれているのはそこじゃないと思う
突っ込んでいる人は、
ほぼ100%言い切っているあなたの見識の狭さに突っ込んでるんだと思うの
787デフォルトの名無しさん:2013/11/10(日) 13:16:50.99
よくこんなつまらんやり取り続けられるな
788デフォルトの名無しさん:2013/11/10(日) 14:05:36.39
プログラマーの職種に応募して落ちたんですが、プログラマーになったら
1日8時間はコンピュータを触らないといけないというのは本当ですか?
とてもじゃないけどやってられないんですが。
789 ◆QZaw55cn4c :2013/11/10(日) 14:06:44.53
ほんとうだね
790 ◆QZaw55cn4c :2013/11/10(日) 14:07:46.50
791デフォルトの名無しさん:2013/11/10(日) 14:24:49.61
>>788
今どきそんなんじゃ、プログラマーどころかホワイトカラー全般やっていけないだろ
他の職に就きな
792デフォルトの名無しさん:2013/11/10(日) 14:25:02.18
>>788
なら落ちてよかった。おめでとう。
793デフォルトの名無しさん:2013/11/10(日) 14:26:33.15
>>788
8時間で済めばいいけどなw
794デフォルトの名無しさん:2013/11/10(日) 14:52:59.02
>>792
いやいや大変だとしてもプログラマーなりたいですよ。
今はフリーターです。

>>793
そうなんですか?8時間より短いんですか?
後プログラマーって休日は仕事から離れたくて
一切パソコンに触らない人が多いって本当ですか?
795デフォルトの名無しさん:2013/11/10(日) 14:54:53.30
>>783
> 99.9% って慣用句みたいなもんじゃないの?

ジョークの次は慣用句とか言い出したぞ (w

そもそも 99.9% とか言うなら、せめて8割を越えているソース出せって話。
まあ、出せないから誤魔化したいんだろうけど。
796デフォルトの名無しさん:2013/11/10(日) 15:03:57.44
慣用句みたいなもん→比喩と言いたかったんじゃね? どっちでもいいけどw
797デフォルトの名無しさん:2013/11/10(日) 15:18:46.03
草生やすホモガキしね
798デフォルトの名無しさん:2013/11/10(日) 15:45:17.98
>>794
休日は7日サイクルではやってこない
一案件片付いた後のダウンが長い
この意味で当たらずも遠からず
799デフォルトの名無しさん:2013/11/10(日) 15:56:20.05
無駄なく要領よく仕事をこなすという意味では
PC嫌いの方が向いている職種だと時々思う
800デフォルトの名無しさん:2013/11/10(日) 16:13:10.30
801デフォルトの名無しさん:2013/11/10(日) 17:14:30.51
>>793
依存症?
802デフォルトの名無しさん:2013/11/10(日) 17:19:56.13
>>799
向いてねえよ
8時間もPCに向かえない奴が、無駄なく要領よくなんてできない
803デフォルトの名無しさん:2013/11/10(日) 17:23:38.64
集中してて結果的にこんな時間かよ ってのはあるが
散漫と8時間PCに向かえと言われると、、、ちょっとツライ
804デフォルトの名無しさん:2013/11/10(日) 17:24:08.64
画面見なければ良いんだよ。8時間なんて余裕
805デフォルトの名無しさん:2013/11/10(日) 18:19:22.66
>>804
頭いいな、俺の親が同じようなアドバイスくれたわ。
806デフォルトの名無しさん:2013/11/10(日) 18:21:45.67
パソコンで10時間超えるような仕事は過労死認定できるんじゃない?
807デフォルトの名無しさん:2013/11/10(日) 18:26:13.78
HDDの回る音と、ファンの音が精神的に悪すぎる。
これを完全にシャットアウトするものないのかな?
808デフォルトの名無しさん:2013/11/10(日) 18:28:43.47
>>807
PCを隣の部屋に置け
809デフォルトの名無しさん:2013/11/10(日) 18:36:32.15
>>808
自分が隣の部屋へ行くってのはダメですか?
810デフォルトの名無しさん:2013/11/10(日) 18:38:58.15
基板と電源をファンレスで固め、SSD にする
ファンレスでぐぐると BTO も無数にヒットする
811デフォルトの名無しさん:2013/11/10(日) 18:42:10.84
>>807
耳を塞ぐ
812デフォルトの名無しさん:2013/11/10(日) 19:00:06.01
ロシアとかの遠隔地にハードを置いてこっちからは光で信号を送って
パネルだけあればいいみたいな仕組みは無理なんですか?
813デフォルトの名無しさん:2013/11/10(日) 19:03:27.55
耳栓は耳に対する負担がでかすぎる。
あれ耳筋に相当負荷かけてるよな。
814デフォルトの名無しさん:2013/11/10(日) 19:11:53.52
>>812
神クライアントのことか?
神クライアントって仕組みは確かにあるよ
815デフォルトの名無しさん:2013/11/10(日) 19:14:44.46
>>814
例えばGTA5みたいな超高スペックのゲームをパソコンでやりたい場合
サーバーサイドで処理して、こっちからはタイピングした文字の情報
だけ送って、画面に結果だけ送るみたいな。そういうシステムとかあ
るんですか?
816デフォルトの名無しさん:2013/11/10(日) 19:17:30.14
>>1 の
http://codepad.org/
http://ideone.com/
シンクライアントではないか

コードはこっちから送るけど、コンパイル&実行は鯖側 って例
817デフォルトの名無しさん:2013/11/10(日) 19:20:38.80
>>816
なるほど、身近なところにありましたね。
でもなんでそのサイトは実行が遅いんでしょうか?
もっと早くしたら凄い人気出ると思いますけど。
818デフォルトの名無しさん:2013/11/10(日) 19:20:39.46
>>796
ジョーク ⇒ 慣用句 ⇒ 比喩

どんどん深みにはまってるぞ (w
819デフォルトの名無しさん:2013/11/10(日) 19:31:22.89
×シンクライアントではないか
○シンクライアントではないが
820デフォルトの名無しさん:2013/11/10(日) 19:42:39.49
お前ら8時間くらいネットでPCやスマホ使ってるだろう?
821デフォルトの名無しさん:2013/11/10(日) 19:46:00.72
仕事入れると16時間くらいはモニタに向かってる
822デフォルトの名無しさん:2013/11/10(日) 19:47:03.66
>>821
辛すぎない?
運動は何してるの?
823デフォルトの名無しさん:2013/11/10(日) 19:47:10.52
依存症
病院池
824デフォルトの名無しさん:2013/11/10(日) 20:00:00.60
卓球やテニスはいいらしいね。
やってみるといい。
825デフォルトの名無しさん:2013/11/10(日) 22:02:14.89
スポーツゲームはあまりやらない
826デフォルトの名無しさん:2013/11/10(日) 22:30:04.57
>>822
> 運動は何してるの?

取り敢えず2駅分 (30分ぐらい) 歩いている。
827デフォルトの名無しさん:2013/11/11(月) 18:17:22.43
C言語勉強してLinuxのalsaのmute(音)のon/offを逆転させるプログラムを
書いてみたのですが、なにかアドバイスはありませんでしょうか?
http://ideone.com/DRTtrU
828デフォルトの名無しさん:2013/11/11(月) 18:34:13.66
誤差でつまづいています。
http://ideone.com/mA3Ipj
のようなコードで計算すると4番目と5番目の出力が想定している
1.254500e-04 
になってくれません。
実際コード中で使用したいのはc+d-bという形です。
floatは小数点7桁の演算まで大丈夫だった記憶があるのですが6桁の計算が
思い通りできないのはなぜでしょうか。
また、どのように回避すればいいのでしょうか。
829デフォルトの名無しさん:2013/11/11(月) 18:40:40.50
回避策か…。
小数点以下6桁目までの精度が欲しければ、7桁目を四捨五入することかなぁ。
830827:2013/11/11(月) 18:44:37.19
ミュートがon = 音がoff
ミュートがoff = 音がon
なのだから
ミュートがon と 音がon の記述をゴチャ混ぜにしてはいけなかった。
831デフォルトの名無しさん:2013/11/11(月) 18:49:53.20
>>827
mute(音)という考え方が間違っているのでは。。
832827:2013/11/11(月) 19:05:48.30
>>831
> mute(音)という考え方が間違っているのでは。。

mute(音を消す)ですね
833デフォルトの名無しさん:2013/11/11(月) 19:11:42.06
>>828
小数点7桁ではなく有効桁が7
7桁必要なら倍精度使いなさい
834デフォルトの名無しさん:2013/11/11(月) 19:35:10.41
足し算引き算は絶対値の大きいものから並べなおしてからやる
835デフォルトの名無しさん:2013/11/11(月) 19:37:25.44
なんにせよ最後に丸めるしか無いよ。
0.1は0.1じゃないんだからさw
836デフォルトの名無しさん:2013/11/11(月) 19:41:11.98
変数の名前って何で制限ないんですか?
1000字にしたけどOKでしたよ。
容量的には26^1000通りだからビット的に無量大数超えないんですか?
837デフォルトの名無しさん:2013/11/11(月) 19:44:01.27
>>836
変数名の桁数と個数は分けて考えよう。
どちらも限界はあるだろう。
838デフォルトの名無しさん:2013/11/11(月) 19:44:23.19
1000字の最後の文字が違うの区別ついた?
839828:2013/11/11(月) 19:52:51.17
有効桁7桁目の値はfloatではどうにもできないんですね。ありがとうございました。
840デフォルトの名無しさん:2013/11/11(月) 20:33:42.85
>>836
名前全通りぶんのメモリを用意する必要はないから26^1000もの容量は要らない
というか26じゃない (大文字、小文字、数字、アンダースコア)
841デフォルトの名無しさん:2013/11/11(月) 21:15:42.94
>>840
26*1000*4ですかね?
842デフォルトの名無しさん:2013/11/11(月) 22:15:10.40
>>841
先頭は数字禁止とか、諸々の規則を考慮すると、計算は難しいな。。
843デフォルトの名無しさん:2013/11/11(月) 22:29:43.19
例えば、クラス全員の名簿を作りなさいって言われて、
日本人全員のありうる名前を全部列挙する必要なんてないでしょ?
844デフォルトの名無しさん:2013/11/11(月) 22:39:27.65
>>842
> 先頭は数字禁止とか、諸々の規則を考慮すると、計算は難しいな。。

先頭: A〜Z a〜z _
それ以外: 0〜9 A〜Z a〜z _
なら、文字数 n として、

53 * ( 63 ^ ( n - 1 ) )

でよくね?
845デフォルトの名無しさん:2013/11/11(月) 23:38:12.72
予約語もあるし
ブロックで上書きもあるし
識別子や型呼称や型名の重複の可否もあるし
846デフォルトの名無しさん:2013/11/12(火) 00:16:50.15
>>845
予約語はいいとして

> ブロックで上書きもあるし
> 識別子や型呼称や型名の重複の可否もあるし

お前はいったい何を言ってるんだ?
847デフォルトの名無しさん:2013/11/12(火) 02:28:02.77
Cプログラミング診断室というwebページを読んでいたら
http://www.pro.or.jp/~fuji/mybooks/cdiag/cdiag.1.9.html
下記のような記述がありました(送られてきたソースを添削した内容)

関数名 int call_melsec で { が始まる前に80-81行でint style, char *message
を宣言していますが、これはどういう効果(作法?)なんでしょうか。

79 static int call_melsec( style, message )
80 int style; /* 転送形式 */
81 char *message; /* 転送文字列 */
82 {
83 char send_d[BUFFER_SIZE]; /* 送信メッセージ本体 */
...
...
131 }
848デフォルトの名無しさん:2013/11/12(火) 02:44:09.61
ANSIがCの標準(C89)を定める前に
K&RのオリジナルのCが採用していた引数の型宣言の方法。
849デフォルトの名無しさん:2013/11/12(火) 13:59:43.88
C言語の文法を大体覚えて、これから自分のプログラムを作ろうと思ってる者です。
規模が大きくなった時にソースファイルを管理しやすいよう、
ソースコードにファイルヘッダコメントと関数説明コメントを入れようと思うのですが、
どのような項目を記入するのが普通なのでしょうか?
今のところ下記のようにしようと思っていますが、今ひとつ内容が足らず、分かりづらく感じます。

ファイルヘッダコメント
/*
* Outline:
* Auther :
* Note :
* Fixlog :
*/

関数説明コメント
/*
* Outline:
* Type :
* Args :
* Note :
* Fixlog :
*/
850デフォルトの名無しさん:2013/11/12(火) 14:12:26.22
>>849
俺はコメントは一切入れない派
851デフォルトの名無しさん:2013/11/12(火) 14:15:13.34
更新履歴はバージョン管理ソフトでやるべき
説明に歴史は要らない
852デフォルトの名無しさん:2013/11/12(火) 14:19:10.61
>>849
内容の話では無いけど。
>ソースコード・ドキュメンテーション・ツール
http://www.doxygen.jp/
853デフォルトの名無しさん:2013/11/12(火) 14:19:50.28
関数名、変数名は後で読んでわかるように。
854デフォルトの名無しさん:2013/11/12(火) 14:22:31.29
>>853
名前は関係ない。
何をしようとしてるか
855849:2013/11/12(火) 14:52:43.04
>>850
本来は、コメントなしでもある程度読めるコードを書かなければ行けないんでしょうけどね。
忘れっぽい正確なんで、ドキュメント作ってないとすぐ全体を把握できなくなるんで(- -;)

>>851
確かに、保存する都度変更点を書くのは面倒ですね。
今だとGitあたりを使えばいいんでしょうか?

>>852
すごい便利そう…
でも、人に見せるわけではないので、今はものを作る方に注力したいです。
暇な時に勉強してみます。
856デフォルトの名無しさん:2013/11/12(火) 15:09:00.56
>>853
案件によっては識別子をわざと分かりにくくすることもある
857デフォルトの名無しさん:2013/11/12(火) 15:56:53.09
>>849
ヘッダにコメント入れとくのは良いと思うよ。
まだ勉強し始めたばっかりだったら、そんなに大規模な
ライブラリは、作れてないだろうけど
どんどん作っていくと、嫌でも
「これ何の関数だ?」ってな感じで忘れていっちまうからね
858デフォルトの名無しさん:2013/11/12(火) 16:01:47.16
コメントで嘘を書かない
859デフォルトの名無しさん:2013/11/12(火) 16:26:14.37
バージョン管理システムのコミットログは管理システム内では有用だけど
ソース単独で提供される等で無意味になるから、ソースにコメントは残すべき

RCSの$Log$のようなのがあればいいけど、最近のシステムは無くなる傾向だしね
860デフォルトの名無しさん:2013/11/12(火) 16:32:33.13
>>859
ソースの先頭に
2013/11/11 T.Yamada XXの不具合を修正
2013/11/12 A.SUZUKI XX機能の追加

みたいな履歴を残すってこと?
あってもほとんど役にたたないと思うわ。
861デフォルトの名無しさん:2013/11/12(火) 16:33:50.90
引き渡す時点でそれより前の履歴はいらないんじゃね
862デフォルトの名無しさん:2013/11/12(火) 16:40:13.51
>>855
Doxygenのルール(≒JavaDocのルール)でコメントを書いておけば今Doxygenを使わなくても後が楽だよ。
863デフォルトの名無しさん:2013/11/12(火) 17:35:57.25
>>860
個人的な経験では役に立つことがあるけど、まあバージョン管理システムで
十分に管理されてないからかもしれない

>>861
後は野となれならいいけど、なんだかんだでメンテすることになるんだよね
864デフォルトの名無しさん:2013/11/12(火) 17:59:40.77
5年後に読んでもわかるように書いて下さい
865デフォルトの名無しさん:2013/11/12(火) 21:56:33.32
履歴提供したきゃ、gitとかhg使ってローカルリポジトリごと渡せばいいと思う
doxygen形式コメントは今一番一般的だろうから、そうしておいた方がいい
866デフォルトの名無しさん:2013/11/12(火) 23:15:09.56
>>856
そんなもんツールでやれよ
867デフォルトの名無しさん:2013/11/12(火) 23:17:26.36
>>858
嘘は書かないけど、ほっとくと嘘になってる...
868デフォルトの名無しさん:2013/11/12(火) 23:22:27.95
>>867
結果的に嘘になったコメントって かえって害悪じゃない?
嘘だなって把握できるなら良いんだけどね
869デフォルトの名無しさん:2013/11/12(火) 23:27:02.23
ローカル変数にaとかbとかやってると、後で修正しようと思った時に、
何の計算なんだかさっぱりわからんって事になるのは俺だけじゃないだろ?
だからわかる名前をつけましょう。
870デフォルトの名無しさん:2013/11/13(水) 00:23:29.70
>>868
> 結果的に嘘になったコメントって かえって害悪じゃない?

そだよ、だからコード変更したらコメントをほっとかないでちゃんとメンテしましょうね


って言うことなんだけど、ついついおろそかになっちゃうんだな。
当然テストでも見つからないし、意外とよくある...
871デフォルトの名無しさん:2013/11/13(水) 04:57:23.26
doxygenコメントを書く習慣をつけておくと、間違ったコメントをある程度指摘してくれる。
872デフォルトの名無しさん:2013/11/13(水) 08:10:16.66
コメントのデバッグが一番難しい
っていうかコメントまでデバッグする暇がない
ソース見て判るならコメントいらない
どうしても書かないといけない注意事項だけ書いておくと目立つ
873デフォルトの名無しさん:2013/11/13(水) 08:15:22.52
cも規格でtestを用意してくれたらいいんだけどねぇ
下手なドキュメントより後日絶対的に役立つから
874デフォルトの名無しさん:2013/11/13(水) 17:11:37.59
3Dゲームありますけど、例えばバーチャファイターみたいなのね
あれって立体を点にしたら処理めっちゃ早くなるんじゃないですか?
面だと凄い計算時間がかかる気がするんですがどうなんでしょう?
Cでバーチャファイター作ってます
875デフォルトの名無しさん:2013/11/13(水) 17:18:56.25
衝突判定と描画は別ロジックだと思うけど、
今時は面で判定したりするみたいやで。
876デフォルトの名無しさん:2013/11/13(水) 17:43:13.97
3Dの計算処理は頂点ベースだから点だろうと面だろうと大して変わらない
頂点と頂点の間を塗りつぶして面に見せる描画処理の時間は変わるだろうけどGPUに丸投げでCPUの時間は食わない
衝突判定についてはそもそも点ではゲームになるまい
877デフォルトの名無しさん:2013/11/13(水) 17:45:04.05
>>876
面?
おまえ、やったことないの丸わかり
878デフォルトの名無しさん:2013/11/13(水) 17:49:05.02
すまん
適当な知識で回答するべきじゃなかったな
誰か詳しい人お願い
879デフォルトの名無しさん:2013/11/13(水) 18:29:07.69
つまりピタゴラスは偉大だったということ
880デフォルトの名無しさん:2013/11/13(水) 18:55:48.08
DirectX使えば3Dの部分は簡単
881デフォルトの名無しさん:2013/11/13(水) 21:01:21.17
>>874
バーチャの初期のころのサターンに移植された版の動画を探してみてご覧。
とってもポリポリしているから。当時はその位処理能力が低かったってことだけどね。
882デフォルトの名無しさん:2013/11/13(水) 21:11:33.75
最近のバーチャはクロスシミュレーションもしてるし
衣装にハイトマップも使ってるし
影の距離によるぼかし加減まで変えてるし
キャラが着水したところからだけではなく水しぶきの水滴が落ちたとこらも波紋広がってるし
逆光時の光の回折まで表現してるし
883デフォルトの名無しさん:2013/11/13(水) 22:28:02.28
バーチャレーシングのころ3Dプログラムあこがれて勉強したなぁ
3Dっていったらアッセンブラだろ?って初めての8086かなんか
読んで勉強したけど、何故かPC9800のグラフィックバイオスで
描画してたから糞遅かった。C言語で書いた方がマシだった
その後WinGとか出てきてテクスチャマッピングとかポリゴン衝突判定とか
勉強してたんだけど、急速に3Dが高度化し始めて、
かっこいいゲーム作るのはプログラムだけじゃなくて3Dモデリングソフト使えなきゃ
駄目って気が付いて挫折した
でもその時のサンプルプログラムのおかげで就職できたけど
884デフォルトの名無しさん:2013/11/13(水) 22:55:36.21
アッセンブラw

素敵すぎてあなたにキッスしたいtw
885デフォルトの名無しさん:2013/11/13(水) 23:07:07.77
アナルにキスだと?
886デフォルトの名無しさん:2013/11/13(水) 23:37:31.45
眼鏡屋か精神科にGO!
887デフォルトの名無しさん:2013/11/14(木) 00:26:36.23
Windows上でLinuxとMac用の実行バイナリも作ってみたいんですが
IDEを利用した簡単なクロスコンパイル方法ってないんでしょうか?
(組み込みのアーキテクチャ用のならeclipseであるみたいですが・・・)
解説サイト見るとクロスコンパイラのビルドからMakeファイルの書き方から
メチャクチャ煩わしくてどこから手を付けてよいのやらわからない感じです
888デフォルトの名無しさん:2013/11/14(木) 00:42:26.73
CygwinでLinux用バイナリのクロスコンパイルなら、だいぶ古いけど
http://www.sixnine.net/cygwin/translation/devel/cygwin-to-linux-cross-howto.html
に解説あるね。
Linuxカーネルさえ(ちょっとパッチいるけど)ビルドできるそうだ。
今どきのバージョンのツールチェインができるかどうかは不明。
Macは知らん。
889デフォルトの名無しさん:2013/11/14(木) 00:43:19.00
あぁ、
> IDEを利用した簡単なクロスコンパイル方法
なんてないだろうな。
890デフォルトの名無しさん:2013/11/14(木) 02:42:28.45
>>887
Linux環境くらい用意してコンパイルすればいいだろks
891デフォルトの名無しさん:2013/11/14(木) 07:41:36.59
C++になるからスレ違いになるけど、QtならWindows, Linux, MacOSどれでも
全く同じソースで同じGUIパーツ構成で作れるよ。勿論、QtCreator上でね。
892デフォルトの名無しさん:2013/11/14(木) 08:17:41.49
そ−ゆ−話ではない
893デフォルトの名無しさん:2013/11/14(木) 08:52:42.87
gtkでもwxでもいいじゃん
894デフォルトの名無しさん:2013/11/14(木) 13:56:49.54
アロー演算子って縦に並ぶとキレイだけど横に並ぶと汚いな
895デフォルトの名無しさん:2013/11/14(木) 14:02:45.60
なんだとコノアロー
896デフォルトの名無しさん:2013/11/14(木) 15:09:34.02
char *ptにscanfで直接文字列を読み込ませたい時はどうすればいいですか?
897デフォルトの名無しさん:2013/11/14(木) 15:15:27.71
>>896
まず第一に、ptに文字列を格納できる空間を割り当てます。
次に、文字列が空白やタブや改行で区切られてもいいか検討します。
区切られていい場合は、フォーマット文字列に"%20s"など適当な幅を指定します。
改行文字以外に区切られては困る場合は、"%20[^\n]"など適当な幅と文字セットを指定します。
全く区切られては困る場合は、scanf()よりももっと適当な関数を選択します。
898デフォルトの名無しさん:2013/11/14(木) 15:17:30.33
>>896
scanf("%s", pt);
899デフォルトの名無しさん:2013/11/14(木) 15:35:58.47
#include <stdlib.h>

int main(int ac, char **av){
int length = 3;
char format[16];
char *pt = (char *)alloca((length + 1) * sizeof(char));
if(!pt) return 1;
sprintf(format, "%%%ds", length);
scanf(format, length, pt);
puts(pt);
return 0;
}

※UNICODE には未対応
900デフォルトの名無しさん:2013/11/14(木) 15:39:48.57
char *pt;
pt = (char*)0;
scanf("%s", pt);
901デフォルトの名無しさん:2013/11/14(木) 15:42:25.34
>>899
sprintf で format 作ってるから scanf(format, pt); じゃね?
902デフォルトの名無しさん:2013/11/14(木) 15:47:05.54
>>897
空白は考えなくていいものと思われます。
>>898
そうしてるのですがその後で
printf(%s,*pt)で出力しようとしたらセグメントエラーになるのは何故でしょうか?
903デフォルトの名無しさん:2013/11/14(木) 15:50:09.13
char *pt;
//メモリー割り当て
pt = malloc(100);
//メモリーチェック
if(!pt)
   exit (-1);
//メモリー解放
free(pt);
//値の取得
scanf("%d", pt);
904デフォルトの名無しさん:2013/11/14(木) 15:53:31.81
>>903
メモリ解放後に scanf しちゃいけない

>>902
printf("%s", *pt) は フォーマット(%s:文字列) と 渡しているもの(*pt:文字) の型が不一致なのでダメ
printf("%s", pt) じゃないといけない
905デフォルトの名無しさん:2013/11/14(木) 15:54:45.00
もしかしてBASICとかのvariant型に慣れ親しんだ人?
906デフォルトの名無しさん:2013/11/14(木) 17:59:34.84
>>888-893
どうもありがとうございます

gccを極めるかLLVMの勉強をするか迷うところですね
スレ違いになりますが、GoogleGoはこのあたり思考停止して
楽にクロスコンパイルできるのがすごいと思いました
907デフォルトの名無しさん:2013/11/14(木) 17:59:46.36
>>900 おまいはイイやつだ
>>898 はクソだ
908デフォルトの名無しさん:2013/11/14(木) 18:07:04.97
常に落ちるか場合によって落ちるかの違い?
909コケマン:2013/11/14(木) 19:41:40.08
工業高校の一年だけど6ヶ月で
printf
scanf
if
while
for
switch
配列
しか教えてもらえなかった!
910デフォルトの名無しさん:2013/11/14(木) 19:42:19.31
>>901
君がそう思うなら
それでいいんじゃね?
911デフォルトの名無しさん:2013/11/14(木) 20:00:26.06
scanf のフォーマットに
printf("%*s", 10, "aaa"); のような長さを別途引数でうけとることができるのあるの?
912デフォルトの名無しさん:2013/11/14(木) 20:33:46.80
%n というのがあるけどちょっと違うかもしれない
913デフォルトの名無しさん:2013/11/14(木) 20:50:27.76
>>907
なんでだよ。>>900だってなんの解決にもなってないぞ。
914デフォルトの名無しさん:2013/11/14(木) 20:51:52.36
>>909
プログラミングは「授業が簡単すぎて面白くないから自分で勝手に勉強した」くらいじゃないとだめだな。
915デフォルトの名無しさん:2013/11/14(木) 21:16:45.55
>>914
そうなんだよな。
授業なんて理解力の低い生徒ややる気のない奴でもそこそこ覚えられる程度のペースだからな。
もっと覚えたいなら、先生に聞くのも良いし本で勉強したりガンガン書くことだな。
出来れば、誰かが評価してくれる環境でやったほうが良いな。褒められたら伸びる。
せっかく他にもプログラミングに片足突っ込んでいる同級生が居るのだから、
志のある奴を見つけて切磋琢磨が出来るだろうし。
うらやましい。俺なんか同級生にプログラムというかパソコン自体に興味のある奴なんか居なかった。
駅前の電器屋のパソコンコーナーの女性店員が色々と手ほどきしてくれたけどな。
独学は良いが我流はやっぱ良くないな。
916デフォルトの名無しさん:2013/11/15(金) 01:59:04.65
http://cruel.org/freeware/hacker.html
>ここでプログラムの学び方について完全な説明は出来ません。
>プログラミングは複雑な技能ですから。
>しかし、本や講習会のコースでダメだとは言っておきましょう。
>多くの、いやひょっとしてほとんどのハッカーたちは我流で勉強してきたのです。
原文
>But I can tell you that books and courses won't do it ? many, maybe most of the best hackers are self-taught.
917デフォルトの名無しさん:2013/11/15(金) 07:45:28.48
>>909
バカ高校だからだろ。簡単と言うがクラスの半分もそれすら使いこなせてないだろ。
そういう集団に入ってしまったのが負け。
918デフォルトの名無しさん:2013/11/15(金) 07:56:04.54
>そういう集団に入ってしまったのが負け。

それは言えるな
馬鹿集団に浸かってると自分まで馬鹿になってることに気付かなくなる
早めに抜け出す努力をした方が良い
そう
2chのように
919デフォルトの名無しさん:2013/11/15(金) 08:16:14.59
>そういう集団
日本のソフトウエア産業、学術業界という落ちこぼれ
集団の事ですね
三流以下の自分の現実が受け入れられなくて
下ばかり見て生きている人達
920コケマン:2013/11/15(金) 08:33:27.34
でも僕成績はクラスで1位だよ?
一応写メあるからスカイプ
kokeman777に送ってけろ!!
c言語とかも教えて欲しいんでよろしく

あと馬鹿高校は認めます
921デフォルトの名無しさん:2013/11/15(金) 09:02:50.27
>>916
我流でも1%はハッカーになれるかも知れんが基礎をおろそかにしがちの我流は、
99%は使えないガラクタになりそう
922デフォルトの名無しさん:2013/11/15(金) 09:41:34.19
「我流」っていうのがよくわからん。
本とかネットとか参照しないで、ひたすら自分でプログラミングを追及するようなの?
それは我流かどうか以前の問題でダメだな。
923デフォルトの名無しさん:2013/11/15(金) 10:23:05.16
won't do itを「ダメだ」とか、self-taughtを「我流」とか訳すと語弊がある。
これじゃ、本を読まない方がマシだと読みとれてしまう。
それにその後の1文を訳していない。

> > ここでプログラムの学び方について完全な説明は出来ません。
> > プログラミングは複雑な技能ですから。
以下俺訳
> 本や授業でもそれはできない。
> 多くのおそらくほとんどの優れたハッカーは独学で勉強する。
> 言語の機能(知識のごく一部)は本から学べる。
> しかし知識を活きた技能にする態度は実践と実習からしか学べない。
> それをするのはコードを読むことと書くことだ。
924デフォルトの名無しさん:2013/11/15(金) 10:48:46.64
我流だと好きなことしかやらない傾向になるだろう。
自分で関数作るのにハマると、クイックソートのアルゴリズムがあるのに
1からバブルソートを半日もかけて編み出したりな。
時間の無駄だしバグを仕込んでしまう確率が増えるじゃないか。
我流で基礎も知らないのに「自分はCが出来ます」と言う奴に多い傾向だ。
開発の現場でも居るだろ?結構。
かといって現状にそぐわないプログラム工学だの開発手法だのを声高々に
となえる頭でっかちも良くないけどな。
理論と実践を繰り返し、バランスを気をつけよう。
925デフォルトの名無しさん:2013/11/15(金) 11:44:28.94
>>924
クイックソートは最悪時間はバブルソートよりひどいんじゃなかったっけ?
バブルソートも双方向ですれば悪くないと思うし、改良の余地あるし。
926デフォルトの名無しさん:2013/11/15(金) 12:45:00.16
GNU の ツール、例えば、GNU Emacs とか
これって、GCC じゃなくて clang でもビルドできるの?
927デフォルトの名無しさん:2013/11/15(金) 13:07:42.32
Emacsはできるよ
全部修正なしでできるかどうかは知らんけど
928デフォルトの名無しさん:2013/11/15(金) 13:16:23.97
>>924
だから「我流」って言葉がよくないんだよ。
あの訳じゃ、「我流」がいいみたいじゃん。
「我流」っていうのは、他のやつがどうやってるか知らんが、俺はこうやる、ってことでしょ。
元の文章にそんな意図はみじんもない。
929デフォルトの名無しさん:2013/11/15(金) 13:27:21.58
配列200万個確保してもいいですか?
930デフォルトの名無しさん:2013/11/15(金) 13:30:26.40
配列200万個じゃなくて、要素200万個の配列だな?
別にかまわんが、ローカル変数だと環境によってはスタックオーバーフローになるよ
931デフォルトの名無しさん:2013/11/15(金) 13:34:23.85
int x;
x=20
int a[10];
a[*x]=7;
としたらエラーが出ました。考えられる事はなんでしょう?
932デフォルトの名無しさん:2013/11/15(金) 13:35:39.66
頭が悪い
933デフォルトの名無しさん:2013/11/15(金) 13:40:14.47
>>933
1行1行、自分が何をさせようとしてそう書いたか、
テディーベア(なければここ)に言ってみればいよ
934デフォルトの名無しさん:2013/11/15(金) 13:40:58.45
>>931
2行目の終わりにセミコロンがない
4行目の乗算に左項がない
935デフォルトの名無しさん:2013/11/15(金) 13:42:04.12
考えられること >>931 がエラーメッセージすら読む気がない
936デフォルトの名無しさん:2013/11/15(金) 14:06:01.23
int x = 20;
int a[10];
a[0.6*x] = 7;
エラーが出るならまだまし
937デフォルトの名無しさん:2013/11/15(金) 16:14:30.03
二つの宣言
char str[]="programming";

char *str="programming";
の違いを教えて下さい
938デフォルトの名無しさん:2013/11/15(金) 16:40:14.97
>>937
そんなん、いろはのい、でしょ?
939デフォルトの名無しさん:2013/11/15(金) 16:51:29.31
>>937
上はローカル変数なら、スタック上にメモリがとられてその文字列がコピーされる。
下は、どっかにある文字列へのポインタが代入される。
940デフォルトの名無しさん:2013/11/15(金) 16:58:17.54
もちろん sizeof str も違う
941デフォルトの名無しさん:2013/11/15(金) 17:48:04.14
32ビットのグレースケールのTIFF画像を8ビットのPGM画像にしたいのですが、やり方がわかりません。
Linuxのod使ってバイナリデータ取り出すとこまでは出来たんですが、その後8ビットに変換する式がわからないんです。
どなたか知ってる人はいませんか?
942デフォルトの名無しさん:2013/11/15(金) 17:58:14.79
>>939

937ではないですがprogramingっていう文字がなかったら
ポインタは代入されないってことですか?
943デフォルトの名無しさん:2013/11/15(金) 18:16:34.08
>>942
ちょっと質問の意味がわからないけど、
char *p;
という宣言ならもちろん代入されない。
char *p = "programing";
という宣言なら"programing"という文字列は、プログラムが動き始めて
終了するまで確実に存在するから、無いかもしれないって心配はしなくていい。
944デフォルトの名無しさん:2013/11/15(金) 18:54:06.41
>>941
imagemagick の covert に変換させるのじゃダメなのかな
945デフォルトの名無しさん:2013/11/15(金) 19:17:29.79
}else{
946916:2013/11/15(金) 19:36:26.60
>>921
「我流」というのは属性として「悪い」イメージを伴うからね、少なくとも日本語ではね
原文の 'self-taught' をどう訳するか、の問題かもね
947デフォルトの名無しさん:2013/11/15(金) 19:45:52.72
独学でいいんじゃね?
948916:2013/11/15(金) 19:56:40.72
独習、がこのみ、あ、独習Java はちとお勧めしかねる
949デフォルトの名無しさん:2013/11/15(金) 20:17:29.93
>>946
まあ>>916は我流というニュアンスではないだろう。

それとは別の我流そのもののの話で、我流は良くないよね。ってことだと思う。
950デフォルトの名無しさん:2013/11/15(金) 20:19:39.60
>>930
マンコマンコうるせぇ!
951デフォルトの名無しさん:2013/11/15(金) 20:21:12.07
コンパイラによって完成した実行ファイルの実行速度って違ったりする?
952デフォルトの名無しさん:2013/11/15(金) 20:46:28.68
大幅に違う
もちろんコンパイル時のオプションによっても大幅に違う
953916:2013/11/15(金) 20:50:02.02
>>949
ただ訳者はなにか思い入れがあってわざわざ「我流」という言葉をぶつけてきた、のかも、しれない、と、この方、いい、わるい、は、別、にして、思い、きった、訳を、公開し、してま、す、か、から
954デフォルトの名無しさん:2013/11/15(金) 21:08:09.94
>>928
決まった学習方法はなく試行錯誤しながら独自の方法で勉強してきたという事
すなわち学習方法が我流 独習や独学とはまた違う
955デフォルトの名無しさん:2013/11/15(金) 22:47:11.54
self-taughtにそんな意味ある?
956デフォルトの名無しさん:2013/11/15(金) 23:20:37.63
Selbstdenken
957C言語なら俺に聞け(入門編)Part 122:2013/11/16(土) 13:08:24.21
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 121
http://toro.2ch.net/test/read.cgi/tech/1382236755/
★過去スレ
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++の宿題片付けます 165代目
http://toro.2ch.net/test/read.cgi/tech/1370255305/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。
958デフォルトの名無しさん:2013/11/16(土) 16:09:12.15
手続きと副プログラムって同じと考えればいいの?
違いがわからん
959916:2013/11/16(土) 16:41:23.28
>>958
fortran だろうか?
ひとつの大きなプログラムをいくつかに分割し、それぞれに部分の機能を記述し、親側はそれらの機能分割部分を呼び出す形とする場合がある。
大きなプログラムの中の、それら機能分割部分を副プログラム、あるいは一般的にサブルーチンと呼ぶこともある

fortran や pascal は呼び出し側に結果を戻すようなからくりがあるものを function, 結果を戻さないものを procedure と分けている。

が、サブルーチンという意味では procedure も function もかわらない
960デフォルトの名無しさん:2013/11/16(土) 16:52:06.42
typedef Hoge *hoge;
961デフォルトの名無しさん:2013/11/16(土) 17:38:25.73
a[100]のそれぞれの要素には1〜100の値が重複なく割り当てられてるとします。
あるソートをしてa[100]の要素をばらばらにして、もう一回ソートしたら元に
戻る。

こういうアルゴリズムを考えてるんですがいい方法ありますか?
962デフォルトの名無しさん:2013/11/16(土) 17:42:01.11
>>961
置換群
963デフォルトの名無しさん:2013/11/16(土) 17:45:05.55
>>962
もっと簡単なのないですか?
964デフォルトの名無しさん:2013/11/16(土) 17:55:43.50
for (i=0;i<100;i++)b[a[i]-1]=i;
...
for (i=0;i<100;i++)a[b[i]]=i+1;
965デフォルトの名無しさん:2013/11/16(土) 17:57:27.12
std::random_shuffle
966デフォルトの名無しさん:2013/11/16(土) 18:05:47.99
>>964
ありがとう、それ繰り返したら元のa[i]の情報はa[i]かb[i]に移動するだけで
なくならないってことですね。ありがとうございます!
967デフォルトの名無しさん:2013/11/16(土) 18:12:21.01
>>961
ソートっていうか、暗号化したのを復号化したいってことかな
968デフォルトの名無しさん:2013/11/16(土) 18:43:05.85
>>967
そうですね暗号化した状態と、開いた状態に一時的にして
プログラム終了時にまた暗号化されている状態に戻るというような

>>964さんのは参考になりますが、実際実装するとしたらどうなんでしょう?
969デフォルトの名無しさん:2013/11/16(土) 18:45:22.23
暗号化したa[100]があって、複合したらb[100]の内容に変わって
クローズするとa[100]は元のa[100]のままである。
というようなアルゴリズムです。
この場合a[100]はデータとしてあるんですが、b[100]は実行中だけ
必要なデータなんですよね、そのb[100]というデータを作り出すに
はどうしたらいいかなと。
970デフォルトの名無しさん:2013/11/16(土) 18:54:46.73
暗号化したa[100]のソースを出力するプログラムを書くだけかと
971デフォルトの名無しさん:2013/11/16(土) 18:55:02.29
書き戻す必要があるって意味なら
int a[100];
ってのと
int *b[100];
ってのを用意して
b[m] = &a[n];
って対応にするわ
972デフォルトの名無しさん:2013/11/16(土) 18:59:04.22
数学基礎論の逆写像を勉強した方がいいよ
973デフォルトの名無しさん:2013/11/16(土) 19:09:46.91
どんなに複雑な暗号化をしても、デバッガ使えるハッカーが分析したら、元のデータ丸見え。
974デフォルトの名無しさん:2013/11/16(土) 19:13:47.11
>>973
秘密鍵なしでか?
975デフォルトの名無しさん:2013/11/16(土) 19:23:12.09
デバッガ使えば、暗号化を完了した地点でデバッグブレイクして復号化されたデータを見ることは可能。
976961:2013/11/16(土) 19:23:55.02
例えば「おはよう」という文字を画像化して
暗号化して画像をソートする。
自分だけがしってる暗号じゃないとおはようという文字は浮かび上がってこない
こうしたら絶対に解読不能でしょう?
ソートの順番は暗号に全く関係ないし。
977961:2013/11/16(土) 19:26:43.53
つまり暗号≒自分だけが知ってるソート方法
という事ですよ。
そのソート方法が思いつかない。
978デフォルトの名無しさん:2013/11/16(土) 19:31:10.54
パスワードがWebに流出すると一貫の終わり
979デフォルトの名無しさん:2013/11/16(土) 19:32:06.18
>>978
流出しないでしょ
メモに書いておけばいい
980デフォルトの名無しさん:2013/11/16(土) 19:37:36.52
暗号ならメモリ上に複合された配列置いた時点で意味をなさない
いろいろ間違ってるな
981961:2013/11/16(土) 19:46:26.13
つまり目的のデータ取得の手段が暗号ではなくソート方法ってことですね
暗号ならデータが残ってパケット解析されてしまうってことですよね?
982デフォルトの名無しさん:2013/11/16(土) 19:52:38.95
暗号化というのはバイト列上の可逆な変換。
可逆な変換というのは例えば、XORで各バイトを反転させるとか、バイト列を逆順にするとか。
可逆な変換を組み合わせるとまた可逆な変換ができる。
ただのソートを暗号化に使いたいなら、恒等写像a[100](a[i]==i)にC++のstd::random_shuffle(&a[0],&a[100]);で乱雑な写像が得られる。
#include <algorithm>
983961:2013/11/16(土) 19:58:17.88
ちょっと難しいかな僕には
984デフォルトの名無しさん:2013/11/16(土) 20:04:11.06
その場合、復号化の際には逆写像を使う。a[100]の逆写像bは次のようにして得られる。

for(i=0;i<100;i++)b[a[i]]=i;
985デフォルトの名無しさん:2013/11/16(土) 20:13:00.63
ソートによる暗号化には、パスワードの情報量が大きくなるという欠点がある。
986デフォルトの名無しさん:2013/11/16(土) 20:21:32.80
>>983
大学に入ったら数学をみっちり勉強するんだな
987デフォルトの名無しさん:2013/11/16(土) 20:30:46.80
馬鹿には無理
988コケマン:2013/11/16(土) 21:46:24.07
君たち何者なの?
989デフォルトの名無しさん:2013/11/16(土) 23:23:00.09
22歳OLです
よろしくおながいします
990デフォルトの名無しさん:2013/11/17(日) 02:00:32.03
おぅまかせとけ
991デフォルトの名無しさん:2013/11/17(日) 11:19:21.10
    /\___/ヽ
   /''''''   '''''':::::::\
  . |(●),   、(●)、.:|     printf関数が使えます
  |   ,,ノ(、_, )ヽ、,, .::::|     どうぞよろしくお願いします
.   |   `-=ニ=- ' .:::::::|
   \  `ニニ´  .:::::/
   /`ー‐--‐‐―´\
992デフォルトの名無しさん:2013/11/17(日) 11:21:30.00
採用
993デフォルトの名無しさん:2013/11/17(日) 11:33:43.64
19歳、看護学生です
へそピしてますが大丈夫ですか?
994デフォルトの名無しさん:2013/11/17(日) 11:36:07.98
>>993
半そでで見えるところにタトゥーを入れてなければ
大丈夫です
995デフォルトの名無しさん:2013/11/17(日) 12:57:19.27
19歳、看護学生です。
MacでもC言語って勉強できますか?
996デフォルトの名無しさん:2013/11/17(日) 12:58:30.73
Macでもモスバーガーでも開発できるよ
997デフォルトの名無しさん:2013/11/17(日) 13:22:21.49
19歳、看護学生です。
>>996 タヒんでね♪
998デフォルトの名無しさん:2013/11/17(日) 13:24:02.61
問題文(含コード&リンク): http://ideone.com/2viXY6 
だれかできる方教えてください。
999デフォルトの名無しさん:2013/11/17(日) 13:25:11.15
埋めます
1000デフォルトの名無しさん:2013/11/17(日) 13:31:19.80
hoge
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。