2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2013/11/17(日) 13:49:54.25
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++の宿題片付けます 166代目
http://toro.2ch.net/test/read.cgi/tech/1381909900/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。

2 :デフォルトの名無しさん:2013/11/17(日) 13:51:12.38
>>1
hoge

3 :デフォルトの名無しさん:2013/11/17(日) 13:52:46.42
>>1
乙hoge

4 :デフォルトの名無しさん:2013/11/17(日) 14:08:33.13
コンパイラ:bcc32
エラー E2303 ファイル名.c 287: 型名が必要

typedef struct byteArray {
char* buf;
int length;
int type;
}ByteArray;

extern int recvByLen(const SOCKET soc, ByteArray* array);

int recvByLen(const SOCKET soc,ByteArray array){
  処理
}

この様に定義して作った構造体と関数を使いたいのですが、いざコンパイルをかけるとコンパイルエラーとして上記のエラーがはき出されます。
おそらく第2引数のことを指しているとは思いましたが、呼び出し側も関数側の方もスペルは合ってます。

このエラーが出る考えられる原因を教えてください。

5 :デフォルトの名無しさん:2013/11/17(日) 14:16:37.28
#include <sys/socket.h>

6 :デフォルトの名無しさん:2013/11/17(日) 14:18:14.17
>>4
externと実際の関数で引数の型が違ってる。
エラーは違う原因だと思うけど。

7 :デフォルトの名無しさん:2013/11/17(日) 14:23:51.91
#include <winsock2.h>
だった

8 :デフォルトの名無しさん:2013/11/17(日) 14:27:34.38
>>5
SOCKET型の事でしたら、ソース内で「winsock2.h」を読み込んでます。
内容が書き足らず申し訳ありません。

>>6
ありがとうございます、修正しておきます。
やはりエラーは型名が必要のままですね・・・

9 :4:2013/11/17(日) 14:28:16.99
名前入れ忘れた、すみません。

10 :コケマン:2013/11/17(日) 14:29:54.36
いやー2chもC言語も初心者だけど一つのスレが終わるってのは清々しいね!

11 :4:2013/11/17(日) 14:48:34.46
追記として
関数を呼び出すソースと関数が定義されているファイルは別々にして分割コンパイルをしています。
main_source.c net.c net.h と3つのファイルで構成しています。

内容は要約しても改行が多すぎと怒られるので分けてレスします。
net.h内
typedef struct byteArray {
char* buf;
int length;
int type;
}ByteArray;
extern int recvByLen(const SOCKET soc, ByteArray* array);

12 :4:2013/11/17(日) 14:49:04.31
net.c内
#ifndef _WINSOCK2API_
#include <winsock2.h>
#endif
#include"net.h"
int recvByLen(const SOCKET soc,ByteArray* array){
処理
}

main_source.c内
#ifndef _WINSOCK2API_
#include<winsock2.h>
#endif
#include"net.h"
int main(int argc,char **argv){
ByteArray array;
関数呼び出しまでの処理
recvByLen(connectSoc,&array);
}
となっています。

13 :デフォルトの名無しさん:2013/11/17(日) 14:49:58.62
独自の名前と思っているものが、別の場所でマクロ定義されている、とか

14 :デフォルトの名無しさん:2013/11/17(日) 14:51:59.31
arrayがぁゃιぃ

15 :4:2013/11/17(日) 14:55:45.23
>>13
レスありがとうございます。
今ByteArrayを変更してB_Arrayや、Barrayなどに変更しましたが、同じエラーが出たのでおそらく違うようですね…

うーんホントにコレなんなんだろう?

16 :デフォルトの名無しさん:2013/11/17(日) 14:57:41.17
>>11
extern int recvByLen(const SOCKET soc, ByteArray* array); のexternいらん
コンパイルとは関係ないが

17 :4:2013/11/17(日) 15:02:12.84
>>16
マジでですか?
複数ファイルを使用し、関数の定義は宣言とは違うファイルで書いていたので必要かと思ってつけました

18 :デフォルトの名無しさん:2013/11/17(日) 15:07:34.84
287行目はどれよ?
あと、その行に複数候補があるなら、複数の行にぶったぎれ。

19 :デフォルトの名無しさん:2013/11/17(日) 15:10:40.87
#include"net.h"
    ↓
#include "net.h"

20 :4:2013/11/17(日) 15:16:07.14
>>18
行数名書いてませんでした、申し訳ありません

287行目は関数の定義のこの部分です

287 int recvByLen(const SOCKET soc,ByteArray* array){
288 int recvSize ,
recvIdx,
recvLen,
recvFlag;




21 :4:2013/11/17(日) 15:22:54.62
本当に申し訳ありません、怒らないで聞いてください。
解決しました。

原因は net.c ファイルで net.h をインクルードしていないことでした。

>>19さんの指摘で念のためスペース入れてみようと思い、確認したところ
そこでヘッダーファイルを読み込んでないことに気づき、インクルードした結果コンパイル通りました。

本当にありがとうございます。

22 :デフォルトの名無しさん:2013/11/17(日) 15:23:30.62
>>20
SOCKETが定義されてないんじゃねえの

23 :デフォルトの名無しさん:2013/11/17(日) 15:23:35.91
エラーメッセージが不親切な古いコンパイラ使うのやめたら?

24 :デフォルトの名無しさん:2013/11/17(日) 15:25:32.85
よかつたね

25 :4:2013/11/17(日) 15:31:34.52
>>23
フリーで紹介されてた中で評価の高かったのがこれでしたので使っていましたが、確かにこのエラーメッセージは不親切すぎました。
今後の為にも他のコンパイラ探してみます。ありがとうございました。

>>24
ありがとうございます。

26 :デフォルトの名無しさん:2013/11/17(日) 15:32:34.85
コンパイラのせいにしやがった

27 :デフォルトの名無しさん:2013/11/17(日) 15:35:39.87
VS2008EEがおすすめ

28 :デフォルトの名無しさん:2013/11/17(日) 15:35:57.94
実際に不親切なんだから仕方がない

29 :デフォルトの名無しさん:2013/11/17(日) 15:47:55.01
型名が必要なのに型名以外のトークンが出現したのでその通りのメッセージじゃないか

どういうメッセージなら満足するんだよ

30 :コケマン・イェーガー:2013/11/17(日) 15:47:56.42
しかたないでしょ?
この世界は残酷なんだから

31 :デフォルトの名無しさん:2013/11/17(日) 15:49:39.89
>>29
行だけじゃなく文字位置

32 :デフォルトの名無しさん:2013/11/17(日) 16:18:13.25
malloc関数で確保したメモリブロックの領域を確認したいんだけど
そういった関数ない?


int tempSize = 1000;
char *temp;

temp = (char*)malloc(tempSize);
見たいな感じで temp が確保したメモリのバイト数を確認したいのです。

33 :デフォルトの名無しさん:2013/11/17(日) 16:22:08.30
>>32
ないよ

34 :デフォルトの名無しさん:2013/11/17(日) 16:26:34.86
>>32
標準には無い
環境依存なら時々あるけどお薦めしない

35 :デフォルトの名無しさん:2013/11/17(日) 16:28:44.21
まじかー・・・ちゃんと確保出来てるか確認したかったけど
PCを信じるしかないか
thx

36 :デフォルトの名無しさん:2013/11/17(日) 16:33:01.38
tempが0でなければ、ちゃんと確保できてる。
PCを信じるというか、おまえの使ってるライブラリを信じるかぎり。

37 :デフォルトの名無しさん:2013/11/17(日) 16:35:53.80
いやいや信じろよ
指定したサイズのメモリを確保するという仕様を信じられないなら、
サイズを取得できる関数も信じられなくね?

38 :デフォルトの名無しさん:2013/11/17(日) 16:42:26.57
初心者のコンパイラやライブラリに対する不信感は異常

39 :デフォルトの名無しさん:2013/11/17(日) 16:57:26.11
どうせtempのチェックもせずに、確保できたかどうか心配〜とか言ってるんでしょ

40 :デフォルトの名無しさん:2013/11/17(日) 17:13:08.98
自分のプログラムミスをコンパイラやライブラリのせいにする

経験上、コンパイラかlibcが原因だったことは10万回に一回くらいだな

世界中で何十万人が使ってるものを、お前如きゴミクズが疑うのは1万年早い

41 :デフォルトの名無しさん:2013/11/17(日) 17:31:08.53
戻り値のtempなら確認できるが、freeされちゃ分からんだろう
開発に関わったわけでもないのに偉そうなゴミクズは死ねよ

42 :デフォルトの名無しさん:2013/11/17(日) 17:35:21.83
お前が作り込んだバグだっていうのは、ゴミクズ以外はみんなわかってるから

43 :デフォルトの名無しさん:2013/11/17(日) 17:42:52.95
>>41
いずれにせよライブラリは関係ないわけで

44 :デフォルトの名無しさん:2013/11/17(日) 17:46:34.42
コンパイラのせいにしてるようじゃこの先やってけないよ

45 :デフォルトの名無しさん:2013/11/17(日) 17:46:59.57
そんなに既存のコンパイラを疑うならコンパイラから自分で作れば?って話

46 :デフォルトの名無しさん:2013/11/17(日) 17:55:41.48
なんでお前らそんなにキレてんの

47 :デフォルトの名無しさん:2013/11/17(日) 18:04:48.14
珍しい動物を棒で突ついて遊んでる
このクラスの逸材はめったに出現しないからね

48 :デフォルトの名無しさん:2013/11/17(日) 18:06:29.60
だからコンパイラ作ったわけでもないのに、何でこんな偉そうなの?
朝鮮人なの>

49 :デフォルトの名無しさん:2013/11/17(日) 18:06:52.38
キレテナーイ

50 :デフォルトの名無しさん:2013/11/17(日) 18:08:25.71
>>36
それが出来ていない実装があるから確認したいんじゃんないの?
linuxとか

51 :デフォルトの名無しさん:2013/11/17(日) 18:10:45.86
>>45
コンパイラなんて作れるんですか?
仮にCで書いたとしても、どうやって実行ファイルにするですか?

52 :デフォルトの名無しさん:2013/11/17(日) 18:12:40.41
>>51
http://www.amazon.co.jp/dp/4774121770

53 :デフォルトの名無しさん:2013/11/17(日) 18:21:27.78
>>50
だからどうやって確認するのかと…
仮に確認する機能があったとして、なんでそちらは信じられるのか…と…

54 :デフォルトの名無しさん:2013/11/17(日) 18:24:06.31
Javaバイナリにしてどうするんだ
せめてLLVMだろ

55 :デフォルトの名無しさん:2013/11/17(日) 18:46:38.16
>>51
作れるから存在してるんだろうが
何なの?
ダイヤモンドみたいにどっかの山掘って採ってくると思ってんの?

56 :デフォルトの名無しさん:2013/11/17(日) 19:02:32.41
>>55
だからどうやってコンパイルするんですか?
コンパイラを作ろうとしてるんですよね?

57 :デフォルトの名無しさん:2013/11/17(日) 19:07:22.56
>>50
overcommit のことでも言いたいのか?

58 :デフォルトの名無しさん:2013/11/17(日) 19:11:29.59
>>36
ゴミクズに管理領域ボロボロにされても、正しく確保できるアロケーターなんて存在しない

59 :デフォルトの名無しさん:2013/11/17(日) 19:16:09.77
>>56
もうちょっと知識付けてから出直して来い

60 :コケマン:2013/11/17(日) 19:23:35.46
なんでそんなに彼の失敗をせめるの?
誰だって最初はゴミクズなんじゃないの?
僕も君たちも小学校の時はみんな最初は先生に色々教えられて成長したはずジャン
大事なのは今のゴミクズの状態ではなく社会に通用するプログラマーになってからなんだと思う
まとめると彼は今成長してるんだから僕たちはチンコでもこすってアドバイスとかすればいいんじゃないの?

61 :デフォルトの名無しさん:2013/11/17(日) 19:26:48.53
>>60
いやもう元の彼は関係ないから
その話を酒の肴に盛り上がってるだけだから
それが2ch

62 :コケマン:2013/11/17(日) 19:31:49.51
>>61
大口叩いてサーセンしたぁ!!

63 :デフォルトの名無しさん:2013/11/17(日) 19:53:20.45
偉そうな奴の中にgccはワシが作ったって奴いねえのかよ
いねえなら偉そうにすんなゴミカス

64 :デフォルトの名無しさん:2013/11/18(月) 01:10:06.37
gccはワシが作った(make的な意味で)

65 :デフォルトの名無しさん:2013/11/18(月) 01:50:37.45
gcc程度なら楽勝でしょ
シェルスクリプトでもつくれる

66 :デフォルトの名無しさん:2013/11/18(月) 02:08:17.38
大学の講義でコンパイラつくったな
懐かしい

67 :デフォルトの名無しさん:2013/11/18(月) 02:29:48.76
yaccとlex使っただけなのにコンパイラー作ったとか言うの禁止な

68 :デフォルトの名無しさん:2013/11/18(月) 02:39:59.44
老害>>67

69 :デフォルトの名無しさん:2013/11/18(月) 02:49:18.84
>>67
ちぇ

70 :デフォルトの名無しさん:2013/11/18(月) 04:11:58.77
>>67
せんせー!bisonやANTLRはyaccに入りますかー?

71 :デフォルトの名無しさん:2013/11/18(月) 06:44:14.20
yacc(とかbisonとか)を造れよ

72 :デフォルトの名無しさん:2013/11/18(月) 15:04:06.15
yacc lexだけじゃフロントエンドしか作れないだろー

73 :デフォルトの名無しさん:2013/11/18(月) 15:09:54.78
パーサージェネレーターとかわざわざ作ることはないけど、
作ろうと思ったら作れるくらいじゃないと、コンパイラ作ったって言うのは禁止。

74 :デフォルトの名無しさん:2013/11/18(月) 15:13:53.56
作ろうと思っただけで作れたつもりになのはOKでしょうか?

75 :デフォルトの名無しさん:2013/11/18(月) 15:15:11.12
宇宙は俺が創ったんですけど?
もちろん俺は韓国人だが

76 :デフォルトの名無しさん:2013/11/18(月) 15:26:34.86
「あったからわざわざ作らなかったけど、作ろうと思えば作れるな」で終了だと思うけど
いろいろ言ってるのは動作原理とか理解しないでただyaccとか使ってただけの連中なんだろうな。

77 :デフォルトの名無しさん:2013/11/18(月) 20:30:08.47
             ,.,.,.,.,.,.,.,.,__
           ,,;f::::::::::::::::::::::ヽ
           i::::::::/'" ̄ ̄ヾi
           |:::::::| ,,,,,_  ,,,,,,|
           |r-==( 。);( 。)
           ( ヽ  :::__)..:: }
        ,____/ヽ  ー== ;  ほほう それでそれで?
     r'"ヽ   t、   \___ !
    / 、、i    ヽ__,,/
    / ヽノ  j ,   j |ヽ
    |⌒`'、__ / /   /r  |
    {     ̄''ー-、,,_,ヘ^ |
    ゝ-,,,_____)--、j
    /  \__       /
    |      "'ー‐‐---''

78 :デフォルトの名無しさん:2013/11/18(月) 21:55:35.16
char*で引数を取る外部ライブラリの関数があるのですが、
その関数は「UTF-8の文字しか受け付けない」とドキュメントに書いてあります。
どうやってchar*の型でUTF-8を渡せばよいのでしょうか?

79 :デフォルトの名無しさん:2013/11/18(月) 22:04:00.95
もっと基礎からやったほうがいい

80 :デフォルトの名無しさん:2013/11/18(月) 22:38:38.47
>>78
C言語で文字コード意識するとアホみたいに面倒になるからそういう用途ならC使わない方がいい

81 :デフォルトの名無しさん:2013/11/18(月) 22:48:49.91
Windows なら WideCharToMultiByte と MultiByteToWideChar があるでしょ

82 :デフォルトの名無しさん:2013/11/18(月) 23:04:30.88
>>78
charはエンコードを意識しないから、一文字8bitのエンコードなら何でも入るよ。
UTF-8のテキストファイルからデータを読み込んでchar*に入れたらそのままUTF-8だし
コンソールがUTF-8に設定されていたら、標準入力から読み込む文字列はUTF8になる。

UTF-8でない環境で、そのライブラリのためだけにUTF-8を使いたかったら、>>81みたいに
OSやら処理系やら、ライブラリを利用してUTF-8に変換してから渡すことになる。

83 :デフォルトの名無しさん:2013/11/18(月) 23:24:43.65
>>78
ワイド文字 マルチバイト文字 でググれ

84 :デフォルトの名無しさん:2013/11/18(月) 23:30:46.13
>>78
UTF-8というのは、Unicodeをchar*で扱えるようにした形式。
7bitASCII範囲の数字とかアルファベットとかしか使っていない文字列は、ASCIIとUTF-8で同一になるよ。

というか、当初ユニコードが2バイトで定義された時に、普通は1byte文字しか使わない英語圏の連中が、
おいおい1文字で無駄に2バイトもとらせるなよ、ということでASCII範囲ならそのまま互換性のある
UTF-8形式を考えた、というとこらしい。

85 :78:2013/11/19(火) 00:12:04.21
このコードがLinuxでは文字化けしないのにWindowsでは文字化けします。
文字化けの確認は
./program > output.txt
でリダイレクトしたものを確認しています

#include <stdio.h>

int main (int argc, char **argv)
{
// utf8 の"あいうえおかきくけこさしすせそたちつてと"
const char utf8[] = {
0xE3,0x81,0x82,0xE3,0x81,0x84,0xE3,0x81,0x86,0xE3,
0x81,0x88,0xE3,0x81,0x8A,0xE3,0x81,0x8B,0xE3,0x81,
0x8D,0xE3,0x81,0x8F,0xE3,0x81,0x91,0xE3,0x81,0x93,
0xE3,0x81,0x95,0xE3,0x81,0x97,0xE3,0x81,0x99,0xE3,
0x81,0x9B,0xE3,0x81,0x9D,0xE3,0x81,0x9F,0xE3,0x81,
0xA1,0xE3,0x81,0xA4,0xE3,0x81,0xA6,0xE3,0x81,0xA8,
0x00 };

printf("%s\n", utf8);
}

86 :デフォルトの名無しさん:2013/11/19(火) 00:14:56.82
>>85
winのコンソールがshift-jisだよ

87 :78:2013/11/19(火) 00:22:07.04
>>86
chcp 65001を実行した後に再びプログラムを実行したら文字化けしなくなりました
ありがとうございました

88 :デフォルトの名無しさん:2013/11/19(火) 10:51:00.05
/* a5-3-10.c */
#include <stdio.h>

int main(void)
{
int i, array[7], work;

for (i = 0; i < 7; i++) {
printf("%d番目 > ", i);
scanf("%d", &array[i]);
}
for (i = 0; i < 3; i++) {
● = array[i];
array[●] = array[●];
array[6 - i] = work;
}
printf("入れ替え後\n");
for (i = 0; i < 7; i++) {
printf("array[%d] = %d\n", i, array[i]);
}

89 :デフォルトの名無しさん:2013/11/19(火) 11:28:37.45
work = array[i];
array[i] = array[6 - i];
だろ

90 :デフォルトの名無しさん:2013/11/19(火) 12:58:35.91
ボケろよ

91 :デフォルトの名無しさん:2013/11/19(火) 13:04:39.22
#define NUM_SAMPLE 4
#define NUM_INPUT 2
double tx[NUM_SAMPLE][NUM_INPUT], ty[NUM_SAMPLE][NUM_OUTPUT];
tx[0][0]=0.3;
tx[0][1]=0.4;
//tx[0][2]=0.3
ty[0][0]=1;

tx[1][0]=0.5;
tx[1][1]=0.2;
//tx[1][2]=0.3;
ty[1][0]=0;

tx[2][0]=1;
tx[2][1]=0.6;
//tx[2][2]=0.1;
ty[2][0]=1;

tx[3][0]=0.5;
tx[3][1]=0.1;
//tx[3][2]=0.3;
ty[3][0]=0;
for(i=0;i<10;i++)printf("[%.1f]",tx[0][i]);

で[0.3][0.4]だけきれいに表示かコアなんとかされると思ったのですが
表示は[0.3][0.4][0.5][0.2][1.0][0.6][0.5]
と表示されます。なぜtx[1][0]tx[1][1]・・・の数字がtx[0][3]・・[4]の
ほうにまではいっているのでしょうか。。

92 :デフォルトの名無しさん:2013/11/19(火) 13:40:45.44
tx[i][j] が *(tx+i*NUM_INPUT+j) と同じだから

93 :デフォルトの名無しさん:2013/11/19(火) 14:27:08.40
配列の範囲外へのアクセスは未定義

94 :デフォルトの名無しさん:2013/11/19(火) 23:38:16.44
質問です。

typedef struct{
  int id;
  int *array;
}ST_DATA;

int no_1[] = { 0, 1, 2 };

ST_DATA list[] = { 1, &amp;no_1[0] };

という定義があったとして、
for( i=0; i<(sizeof(*list[0].array)/sizeof(list[0].array[0])); i++ ){...}

この場合、forは3回ループ処理ができるでしょうか?
また 「sizeof(*list[0].array)」 の*が無いと、sizeof(int *)と同じ意味になるでしょうか?
宜しくお願いします。

95 :デフォルトの名無しさん:2013/11/19(火) 23:43:48.88
arrayはあくまでポインタだから、
sizeof(*array)もsizeof(array[0])も同じ。
なので1回。

後者はyes。

96 :デフォルトの名無しさん:2013/11/19(火) 23:44:43.26
ST_DATA.array が配列ではなくポインタなので

sizeof(ST_DATA.array) / sizeof(ST_DATA.array[0]) で要素数を得ることはできない

97 :デフォルトの名無しさん:2013/11/20(水) 00:43:05.85
>>95
>>96
回答ありがとうございます。
どうしてもlist[]からループ数を判断したい場合は、ST_DATAのメンバに要素数を追加して、
ST_DATA list[] = { 1, &amp;no_1[0], 3 }; とするしかないでしょうか?

98 :デフォルトの名無しさん:2013/11/20(水) 01:14:49.71
そだね。
そこは 3 じゃなくて、sizeof(no_1)/sizeof(no_1[0]) でいけるが。

99 :デフォルトの名無しさん:2013/11/20(水) 01:21:24.68
>>98
なるほど。
ありがとうございます。

100 :デフォルトの名無しさん:2013/11/20(水) 18:59:56.64
1. ST_DATAはそのままで、
   int no_1[] = { 0, 1, 2, -1 };
 みたいに配列の終端を -1 とかに出来るならそれを入れて
 配列要素数を適宜数える

2. >>97みたいに
  typedef struct {
   int id;
   int *array;
   int data_n;
  } ST_DATA;
 とかで配列要素数をもたせる

状況により使い分ける

101 :デフォルトの名無しさん:2013/11/20(水) 23:20:23.48
スレチかもしれませんが同じメールソフトなのにサイトに導入してる機関
によってログインできないのは何故ですか?

102 :デフォルトの名無しさん:2013/11/20(水) 23:30:39.70
スレチだしイタチだし日本語でおけだし

103 :デフォルトの名無しさん:2013/11/20(水) 23:39:39.73
すんません、多分超初歩的なことかもしれませんが、、環境 win7(home) コンパイラ bcc32
本を見て入力しながらべんきょうしてるんですけど。
#include <stdio.h>
#include <stdlib.h>
int input_and_sum(int n) {
int i,sum,*p;
p = (int *)alloca(sizeof(int)*n);
for (i = 0; i < n; i++){
printf("Input No.%d:",i);
scanf("%d",&p[i]);
}
sum = 0;
for (i = 0; i < n; i++)
sum += p[i];

return sum;
}

int main(void) {
int n, sum;
printf("Input n=");
scanf("%d",&n);
sum = input_and_sum(n);
printf("sum=%d\n",sum);
return 0;
}
これをコンパイルすると'プロトタイプ宣言のない関数 'alloca'の呼出(関数 input_and_sum)で警告がでます。
allocaってstdlib.hをインクルードするのでは???

104 :デフォルトの名無しさん:2013/11/20(水) 23:43:07.94
>>101
「スレチかも知れませんが、同一のメーラー使っているのに
 接続するメールサーバを変えると認証が失敗する場合があります。
 何故でしょうか?」

…ということ?

105 :デフォルトの名無しさん:2013/11/20(水) 23:45:12.63
alloca は非標準関数でBCCには無いんじゃないかな?

106 :デフォルトの名無しさん:2013/11/20(水) 23:47:37.72
>>105
Oh! grepで探しても見つからん、はて?と思ってたら。。。orz
なんてこったい

ありがとうございます トホホ

107 :デフォルトの名無しさん:2013/11/20(水) 23:50:18.70
bcc32でalloca使う場合は
malloc.h
をインクルードするみたい
ttp://docwiki.embarcadero.com/RADStudio/XE3/ja/Alloca

108 :デフォルトの名無しさん:2013/11/20(水) 23:52:59.94
>>107
ありがとうございます!
警告無しにコンパイル出来ました。^^;

109 :デフォルトの名無しさん:2013/11/21(木) 00:48:42.10
いまさらC

110 :デフォルトの名無しさん:2013/11/21(木) 01:53:33.64
自己参照構造体がイマイチ理解できねぇ・・・
みんな理解してんのかよ・・・・

111 :デフォルトの名無しさん:2013/11/21(木) 02:00:46.75
四角と矢印を使って絵を描いてみればいい

112 :デフォルトの名無しさん:2013/11/21(木) 02:14:37.62
あれでしょ、
□□■→□□■ □□■→□□■
      ↓ ↑
      □□■
こんな感じの絵でしょ?

言ってることはわかるけど、コードと説明読んでると混乱する。
混乱してる時点で、言ってることもわかってないと思うけど。

113 :デフォルトの名無しさん:2013/11/21(木) 02:16:41.39
めっちゃずれてた

□□■→□□■ □□■→□□■
         ↓ ↑
         □□■

どや

114 :デフォルトの名無しさん:2013/11/21(木) 02:54:42.57
最近はじめてよくわからないんですけど、
Voidの中でポインタに入れたものをプログラム全体で使おうとおもったらどしたらいいんでしょうか・・・。

115 :デフォルトの名無しさん:2013/11/21(木) 04:31:11.82
_alloca()

116 :デフォルトの名無しさん:2013/11/21(木) 07:47:41.67
>>114
static void* foo_;
void foo_malloc(void)
{
foo_ = malloc(1);
}
void foo_free(void)
{
free(foo_);
}

117 :デフォルトの名無しさん:2013/11/21(木) 10:16:44.38
「自己参照」
って意味が誤解されることが多いと思う
あくまでメタ領域での自己参照であって
インスタンス領域で自己を参照している訳ではないから
あまり良い表現じゃないよな
石田晴久の訳か?

118 :デフォルトの名無しさん:2013/11/21(木) 10:51:44.99
>>117
器が1個のリングバッファだったら自己参照になるな

119 :デフォルトの名無しさん:2013/11/21(木) 12:01:22.72
ケチつけるんなら代替案だしてからにしろ

120 :デフォルトの名無しさん:2013/11/21(木) 13:21:42.21
>>117
ググると、self referential structure みたいだから
他に訳しようもないかと

121 :デフォルトの名無しさん:2013/11/21(木) 13:38:34.42
最近のオブジェクト志向プログラムの流れだと参照は
インスタンスを指してるイメージがするから
再帰的型定義みたいな言い方が適切かも
意訳過ぎるかもしれないけど

122 :デフォルトの名無しさん:2013/11/21(木) 13:47:54.36
単に参照の連鎖を持つ構造と呼ぶのがわかりやすいんだけどな

123 :デフォルトの名無しさん:2013/11/21(木) 16:42:07.43
>>121
不完全型なだけで再帰はしてないよ

124 :デフォルトの名無しさん:2013/11/21(木) 17:06:26.63
>>121-122

125 :デフォルトの名無しさん:2013/11/21(木) 18:45:24.25
>>104
なるほどサイトによってサーバーが違うんですね。
分かりました。

126 :デフォルトの名無しさん:2013/11/21(木) 18:47:31.96
面接で聞かれた質問です
int a=30;
というコードはaで30を参照しているとならないのでしょうか?
つまりaは参照型の変数ということにはならないのでしょうか?

127 :デフォルトの名無しさん:2013/11/21(木) 18:56:39.95
ならない
ちょっと落ち着いて初心者用の本を読んだ方がいい

128 :デフォルトの名無しさん:2013/11/21(木) 18:58:53.80
何故でしょうか?
aという変数は「a自身」ではなく30を指しているから参照型じゃないんでしょうか?

129 :デフォルトの名無しさん:2013/11/21(木) 19:03:09.29
aという名前の整数を入れられる箱があって、そこに30が入っているのだ。

130 :デフォルトの名無しさん:2013/11/21(木) 19:04:42.16
Cに参照型なんてないよ
ポインタも含めて、値しか入れられない

131 :デフォルトの名無しさん:2013/11/21(木) 19:05:19.55
つまりaというラベルによって30を参照しているということですよね?

132 :デフォルトの名無しさん:2013/11/21(木) 19:07:06.03
>>131
その理解で間違いないが「参照型」の用語が間違っている

133 :デフォルトの名無しさん:2013/11/21(木) 19:08:05.53
じゃあ、a=a+1; を実行したら、何が起きてると解釈するの?

134 :デフォルトの名無しさん:2013/11/21(木) 19:08:05.93
分かりません

135 :デフォルトの名無しさん:2013/11/21(木) 19:10:07.03
>>133
aが参照している30に1を足した値をaが参照するようにしている
と思いますが

136 :デフォルトの名無しさん:2013/11/21(木) 19:15:05.53
そういうのを参照と言わない。
参照という言葉を自分の定義で使ってはいけない。

int a=30, b=30; を自分の言葉で説明してみな。

137 :デフォルトの名無しさん:2013/11/21(木) 19:24:45.85
python, perlなんかとごっちゃになってるんじゃろ。

138 :デフォルトの名無しさん:2013/11/21(木) 19:55:22.60
int *a;
a=30;
だとaは参照型になるでしょうか?

139 :デフォルトの名無しさん:2013/11/21(木) 19:57:20.16
コンパイルエラーになります

140 :デフォルトの名無しさん:2013/11/21(木) 20:01:40.37
参照型を忘れなさい
参照型なんて言葉どこから覚えてきたの?

141 :デフォルトの名無しさん:2013/11/21(木) 20:02:02.74
C言語は参照型ってあるのか?

142 :デフォルトの名無しさん:2013/11/21(木) 20:02:40.59
>>140
javaという言語しってますか?
javaでは基本型も参照型になるというクラスもあるそうで
というか変数=参照型らしいです。

143 :デフォルトの名無しさん:2013/11/21(木) 20:05:16.75
C言語には参照型がありません
似た機構はポインタを使いますが、ポインタそのものは値です

144 :デフォルトの名無しさん:2013/11/21(木) 20:06:22.70
>>138
aはポインタ型。

145 :デフォルトの名無しさん:2013/11/21(木) 20:11:19.00
基本型も参照型になるクラス=ラップクラスですね
なのでjavaは全ての変数が参照型らしいです
Cはポインタ型変数だけ参照型という事でいいですか?

146 :デフォルトの名無しさん:2013/11/21(木) 20:12:36.88
いいえ 勝手に用語を拡張しないでください
Cには参照型という概念が存在できない言語なんです。

147 :デフォルトの名無しさん:2013/11/21(木) 20:12:56.01
Cに参照型なんかないってさっきから何度もレスあるのに、何なの?
バカなの?

148 :デフォルトの名無しさん:2013/11/21(木) 20:14:26.14
ポインタと参照は一緒だと聞きましたが

149 :デフォルトの名無しさん:2013/11/21(木) 20:14:58.69
ちげーよ

150 :デフォルトの名無しさん:2013/11/21(木) 20:17:37.70
アドレスの値を保有している変数という点では
ポインタ変数と参照変数は一緒ですよね?
ならば何が違うんでしょうか?
名前の違いだけですか?データ構造や機能は一緒でしょう?

151 :デフォルトの名無しさん:2013/11/21(木) 20:21:50.64
>>142
javaという言語知ってます。
java != C言語分かってますか?
言語が変われば用語の有無・意味も変わるのです。

日本語に「もったいない」を意味する単語があるからといって、
英語に「もったいない」を意味する単語がないように、
javaに「参照型」という用語があるからといって、
C言語に「参照型」という用語があるとは限らないのです。

152 :デフォルトの名無しさん:2013/11/21(木) 20:23:47.27
その変数への操作(代入や加算等)のレベルが違うもの
ポインタは所詮ポインタの操作 アドレスをいじってるだけ
参照型変数は参照先の内容の操作 アドレスの指し先の内容をいじってる

153 :デフォルトの名無しさん:2013/11/21(木) 20:25:28.51
> アドレスの値を保有している変数という点では
> ポインタ変数と参照変数は一緒ですよね?

yes

> 名前の違いだけですか?

no

> データ構造や機能は一緒でしょう?

no

> ならば何が違うんでしょうか?

ごめん、分からない。

154 :デフォルトの名無しさん:2013/11/21(木) 20:26:32.62
質問
cでcのコードをコンパイルする命令(関数)ってあるの?

155 :デフォルトの名無しさん:2013/11/21(木) 20:28:05.24
参照のない世界から来た男w

156 :デフォルトの名無しさん:2013/11/21(木) 20:30:17.99
>>152
参照先の内容の変化はポインタでもできませんか?

int *a;
*a=10;

aはaの先の内容を10にしてるじゃないですか?

157 :デフォルトの名無しさん:2013/11/21(木) 20:30:44.40
わかりにくいと思いますが、質問です。
現在、フォルダに入ってる画像(1000枚程度)を読み込んで、画像から得た情報をエクセルに書き込むプログラムを作っているのですが
for文で画像を読み込んでいると(画像の名前は、1,2,3…1000)、255枚目以降は画像を読み込もうとするとエラーがでてしまいます。
なので、254枚しか読み込んで情報をエクセルに入力してくれません。
こういったことは、どのような要素で起こりえますか?

158 :デフォルトの名無しさん:2013/11/21(木) 20:32:21.87
>>156
同じ効果を得ていても、同じ文意じゃないだろ?
* という演算子を余計に使ってるジャン

そうい面も含めて "型" といっているのだよ

159 :デフォルトの名無しさん:2013/11/21(木) 20:33:39.91
>>157
エクセルのバージョンが古い可能性
(横の要素数 255要素までしか置けないから)

160 :デフォルトの名無しさん:2013/11/21(木) 20:34:39.67
*という演算子はポインタを表しているのだから
付けないとダメだと思うのですが何故違う文意なんですか?

161 :デフォルトの名無しさん:2013/11/21(木) 20:35:19.40
int *a;
a += 2;
ほら変数の操作

162 :デフォルトの名無しさん:2013/11/21(木) 20:36:49.61
>>156
> 参照先の内容の変化はポインタでもできませんか?
できるよ。

> int *a;
> *a=10;
>
> aはaの先の内容を10にしてるじゃないですか?
してるよ。
ただし、上記のままで実行するとcore吐いて終了すると思う。

>>157
メモリ使いすぎとかかな?
プログラムが使ってるメモリを調べてみては?
あと、何言語でプログラム作ってるの?

163 :デフォルトの名無しさん:2013/11/21(木) 20:37:05.45
>>159
すみません
エクセルは、画像を読み込んだら、そのたびに新しいのを作ってるので、その点は大丈夫だと思います。
(254個の画像を読み込んだら、254個のエクセルファイルができる)

164 :デフォルトの名無しさん:2013/11/21(木) 20:37:36.69
>>162
C言語で書いてます

165 :デフォルトの名無しさん:2013/11/21(木) 20:37:38.04
>>156
なんでポインタと参照を区別してるかっつーと、
例えばC++にはどっちもあって、必ず言い分ける必要があるわけ。
その意味ではC言語にはポインタ型しかないから、
混乱しない為にも正確な用語を使おうってことなのよ。

166 :デフォルトの名無しさん:2013/11/21(木) 20:38:52.41
>>161
*a +=2;じゃないですか?
エラー出ませんか?てさっき僕が指摘されたことですが。

167 :デフォルトの名無しさん:2013/11/21(木) 20:41:58.36
ポインタ(アドレス)を進めてる
ポインタの指し先の内容を変える
配列とポインタと文字列と、、、、
一旦自分用語をリセットして、C言語の本を読んでくれ
その際、自分の知っている用語で置き換えて読まないでくれ

168 :デフォルトの名無しさん:2013/11/21(木) 20:45:38.61
>>164
bugかな?
unsigned char, char型の変数を使ってない?
それで死んでいると思うよ。
どんなerrorか分からなければ、こちらではどうしようもないな。
どっかにcode貼ってよ。
でないと質問は受け付けられないわ。
2chでdebugなんてできない。

>>166
a += 2;
も大丈夫だし、
*a += 2;
も大丈夫。

実行結果は異なるけどね。

169 :デフォルトの名無しさん:2013/11/21(木) 20:46:40.16
>>157
fclose してる?
同時に fopen できる数は多くないよ

170 :デフォルトの名無しさん:2013/11/21(木) 20:46:52.94
ポインタは所詮ポインタの操作 アドレスをいじってるだけ
参照型変数は参照先の内容の操作 アドレスの指し先の内容をいじってる
   ↑
Cでは
上は*a=b;
下はa=&b;
で目的によって文が変わりますからね
javaではx=yという形しかありませんもんね
そういうことを言っておられるんですね

171 :デフォルトの名無しさん:2013/11/21(木) 20:48:53.45
また疑問がわいてきたんですが何故javaでは*を使わないんでしょうかね?
Cで*を使ってるから著作権的に無理なんですかね?
これはアドレス渡しをしているんだっていう目印が分からないじゃないですか

172 :デフォルトの名無しさん:2013/11/21(木) 20:51:20.88
javaでは配列とオブジェクトは参照(アドレス渡し)。

173 :デフォルトの名無しさん:2013/11/21(木) 20:53:34.53
うん?てかjavaではどうやって参照先の内容変えるんだっけ?
x=yという形なら単に参照渡しですよね

174 :デフォルトの名無しさん:2013/11/21(木) 20:53:44.07
fortranは単純変数も参照渡しだったりする

175 :デフォルトの名無しさん:2013/11/21(木) 20:54:14.97
Cで参照型がどうのこうのって言ってる奴は
まず、自分が使っているテキスト、リファレンスブックなりwebの参考ページをあげてみろって。
そうじゃなきゃ単なる嵐。

176 :デフォルトの名無しさん:2013/11/21(木) 20:55:46.21
>>173
配列なら [] でアクセス。
オブジェクトならメソッドにやらせる。

177 :デフォルトの名無しさん:2013/11/21(木) 20:58:18.50
かメンバ変数にアクセス。

178 :デフォルトの名無しさん:2013/11/21(木) 20:58:51.41
あそっかメソッドか

179 :デフォルトの名無しさん:2013/11/21(木) 20:59:15.31
> また疑問がわいてきたんですが何故javaでは*を使わないんでしょうかね?
Cの後にjavaが出ているんだけど、
Cの方で問題視されている(bugの温床になりやすい)書き方はjavaに取り込みたくなかった。
そのため、*を使わせないようにした。

> Cで*を使ってるから著作権的に無理なんですかね?
プログラミング言語の記法に著作権は存在しない。
だから、javaでも*を使おうと思えば使えた。

> これはアドレス渡しをしているんだっていう目印が分からないじゃないですか
C言語なら、関数に渡す引数の定義で
int func(int *x, int a, int b);
って書くでしょ?
*が変数名の前についているx変数のみアドレス渡しだって分かるじゃん?

180 :デフォルトの名無しさん:2013/11/21(木) 21:08:37.28
これはアドレス渡しをしているんだっていう目印が分からないじゃないですか

この話はjavaの事です

181 :157:2013/11/21(木) 21:11:46.37
>>168
すみません、コードは訳あって貼ることができません
unsigned char も charも使用してます
なぜこれで、死ぬことになるんでしょうか?

182 :デフォルトの名無しさん:2013/11/21(木) 21:12:34.29
>>180
プログラマに対してポインタを隠蔽しようとしたんだろ。
かえってわかりづらいと思うがなw

183 :デフォルトの名無しさん:2013/11/21(木) 21:12:45.23
Cのポインタは万能だけど強力過ぎて低能には使いこなせなかったので
バグだらけのプログラムが世界中で蔓延する結果となった

なんとかせなあかんと反省してJavaではポインタを廃した
C++では参照を導入したが、Cの上位互換という性質上ポインタが
残され混迷を深めている

184 :デフォルトの名無しさん:2013/11/21(木) 21:16:01.21
ポインタを多用すればバグが増えるってそれコンパイラ側の問題なんですか?

185 :デフォルトの名無しさん:2013/11/21(木) 21:17:16.54
ものは試しだ、

unsigned char i;
for(i=0;i<1000;i++){
fprintf(stdout, "i = %d\n", i);
}
ってやってごらんよ。

> コードは訳あって貼ることができません
もうこの質問は打ち切りだ。
debugをcodeも見ずにできないわ。

一応、助言しておくと、
for() で使う変数iをintにすれば解決するんじゃない?

186 :デフォルトの名無しさん:2013/11/21(木) 21:19:35.05
>>180
> これはアドレス渡しをしているんだっていう目印が分からないじゃないですか
>
> この話はjavaの事です

だから、目印なしでもなんとかなるように、
一律 address 渡しとした。
OK?

> ポインタを多用すればバグが増えるってそれコンパイラ側の問題なんですか?
腐れプログラマちゃんの脳みその問題。

187 :デフォルトの名無しさん:2013/11/21(木) 21:24:42.71
>>186
ポインタ多用したらコード間違ってなくてもバグとか出るんですか?
というかバグの定義が分かりません
コンパイルエラーなのか
実行時障害なのか

188 :デフォルトの名無しさん:2013/11/21(木) 21:26:18.29
コンパイルエラーなら取れるだろ
エラー出ないのに、実行時にスタック壊してcore dumpしたり
バッファオーバフロ脆弱性を仕込んだプログラムが多数なんだよ

189 :デフォルトの名無しさん:2013/11/21(木) 21:26:33.68
バカほど自信満々だから手に負えない

190 :157:2013/11/21(木) 21:30:23.98
>>185
親切に答えてくださって、ありがとうございました
なんとか自力で頑張ってみます

191 :デフォルトの名無しさん:2013/11/21(木) 21:30:34.58
違うよ
バカだから自信満々なんだよ

192 :デフォルトの名無しさん:2013/11/21(木) 21:30:46.91
ポインタがわからなくても問題ない言語ってあるし最近はハードがいいので速度にも困らない
すごく根本的に勘違いしてるので直すのに時間がかかるわりには恩恵もあんまりない
他の言語を勧める
バカにしているわけではない
言語にも向き不向きがある

193 :デフォルトの名無しさん:2013/11/21(木) 21:30:50.45
>>187
bugとは、多くの場合 compile error ではなく、実行時障害のことです。
特に、実行時の意図しない障害です。

> ポインタ多用したらコード間違ってなくてもバグとか出るんですか?
code間違ってなかったらbugなぞ出ません!!!
間違いないと思って書いてても、気がつかないところで間違ってしまうもんなんです。
しかも見つけにくいときたもんだ。
で、賢い人がどこで間違いやすいのか、またその間違いを見つけにくいのか調査した結果、
* 使ってpointerの操作しているところがbugの温床になっている。
って結果になりました。

後発隊のjavaでは、*使うのやめましょうか。

ってお話になりましたとさ。

194 :デフォルトの名無しさん:2013/11/21(木) 21:30:53.37
まずみんな口先だけじゃなくて定量化できる
実力の尺度を示せよ
おれは基本情報処理試験をC言語で二度受験したことがあるぞ
なんで聞いてくれ

195 :デフォルトの名無しさん:2013/11/21(木) 21:31:45.31
それはひょっとしてギャグで言っているのか?

196 :デフォルトの名無しさん:2013/11/21(木) 21:33:34.71
漢ならCASL II一択

197 :デフォルトの名無しさん:2013/11/21(木) 21:34:09.01
なるほど、>194は情報処理試験を一度落ちたバカだし日本語も怪しいと。

198 :デフォルトの名無しさん:2013/11/21(木) 21:34:55.29
1回受験すれば済む試験じゃないのか?

199 :デフォルトの名無しさん:2013/11/21(木) 21:35:38.91
初心者のうちは分からないだろうけど、まあこんな話もある。

オフ-バイ-ワンエラー
http://ja.wikipedia.org/wiki/Off-by-one%E3%82%A8%E3%83%A9%E3%83%BC
Off-by-oneエラー(オフ-バイ-ワンエラー、off-by-one error、OBOE)とは、
境界条件の判定に関するエラーの一種である。コンピュータプログラミングに
おいて、ループが正しい回数より一回多く、または一回少なく実行された場合
などに発生する。

200 :デフォルトの名無しさん:2013/11/21(木) 21:36:44.60
それポインタ関係なく、アルゴリズムのバグの話や

201 :デフォルトの名無しさん:2013/11/21(木) 21:38:08.09
突っ込まれちゃった。とほほ。

202 :デフォルトの名無しさん:2013/11/21(木) 21:38:14.37
それしょっちゅうやらかすわ
単体テストって大事

203 :デフォルトの名無しさん:2013/11/21(木) 21:39:10.73
ライブラリがバグってたことは1回しかない
Cは枯れてるし

204 :デフォルトの名無しさん:2013/11/21(木) 21:53:38.05
>>203
Cが枯れてるってのは願望だね
まだ変動は終わってないから方法的懐疑は必要

205 :デフォルトの名無しさん:2013/11/21(木) 21:59:05.98
標準ライブラリならバグってなくて当然じゃないか?
Cの標準ライブラリは他言語と比べて著しく規模が小さいんだし
たかだか数百の関数でバグ混入させちゃまずいだろう

206 :デフォルトの名無しさん:2013/11/21(木) 21:59:12.94
>>154
命令を含めていいなら
spawnとかexecvとか

207 :デフォルトの名無しさん:2013/11/21(木) 22:24:48.57
>>192
いまPHPで仕事してるけど、でっかい配列をリファレンスとか使わないで
値渡しでコピーしまくってるようなコードばっかりだわ。
それでも動いてるし、もう全部値渡しでいいんじゃないかって感じだわ。

208 :デフォルトの名無しさん:2013/11/21(木) 22:26:57.00
メモリ容量は気にする必要は減ってるだろうけど、
性能を考える必要のある用途では無理だな。

209 :デフォルトの名無しさん:2013/11/21(木) 22:38:00.03
基本情報の勉強してるんですが共通フレーム2007ってプログラマーは
意識してるんですか?

210 :デフォルトの名無しさん:2013/11/21(木) 22:49:06.57
何それうまいの?

211 :デフォルトの名無しさん:2013/11/21(木) 22:55:13.64
一般的にプログラムを読む速度ってどのくらいですか?
単位は適当にお願いします

212 :デフォルトの名無しさん:2013/11/21(木) 23:00:08.72
100 lines / min ?

213 :デフォルトの名無しさん:2013/11/21(木) 23:03:03.40
何を目的に読むかによるし、
プログラムがリーダブルかどうかによる。

214 :デフォルトの名無しさん:2013/11/21(木) 23:22:17.26
>>212
俺半分くらいだわ

215 :デフォルトの名無しさん:2013/11/21(木) 23:26:19.32
>>212
は自分で書いた場合です。
他人のは知らんです。

216 :デフォルトの名無しさん:2013/11/22(金) 09:02:53.27
参照って要するにポインタ演算子を使わずにポインタ変数を使って実体にアクセスできるようにしましたってだけだろ

217 :デフォルトの名無しさん:2013/11/22(金) 19:56:20.55
>>207
昆虫並の知能しかないPHP厨ならそれが当たり前なんだろうけど、
普通のプログラマはそんなことはしないよ

将来拡張していったときに重くなったりメモリ食うようになったらどうするの?
経費削減のためにバーチャルホストに移行したときに重くなったらどうるの?
それから値渡しやってる箇所を書き換えるの?
それともこのシステムを動かすにはもっとメモリが必要だと言って無駄なリソースを要求するの?

PHP厨はクズだからこういうところが考えられない
そういう脳にハンディキャップを負ってる人種の書いたコードを引き合いに出されても全く参考にならない

218 :デフォルトの名無しさん:2013/11/22(金) 20:13:50.69
>>217
そのもし〜だったら
のために努力するのはコスパが悪い

219 :デフォルトの名無しさん:2013/11/22(金) 20:21:12.17
>>217
>それから値渡しやってる箇所を書き換えるの?
うん、それでいいと思う。

220 :デフォルトの名無しさん:2013/11/22(金) 20:34:57.37
前提なしでもしの話をするんだったら、

拡張も移行も何もしなかったらどうするの?
将来のためとか言って無駄にかけた経費は誰が払うの?
C厨はクズだからこういうところが考えられない

とも言い換えれる。

使い分けもできず片方に固執する方がクズだろう。

221 :デフォルトの名無しさん:2013/11/22(金) 21:45:09.76
>経費削減のためにバーチャルホストに移行したときに重くなったら

金もらって軽くしてあげるんじゃないの

222 :デフォルトの名無しさん:2013/11/22(金) 23:34:41.96
すみません

簡単なものでいいので、C言語で配列を使ったプログラムお願いします

223 :デフォルトの名無しさん:2013/11/22(金) 23:49:57.79
>>222
#include <stdio.h>
int main()
{
char s[] = "Hello work.";
printf("%s\n", s);
return 0;
}

224 :デフォルトの名無しさん:2013/11/22(金) 23:54:07.97
>>222
int main(void)
{
int i, a[3];
a[0] = 111;
a[1] = 222;
a[2] = a[0] + a[1];
for(i=0;i<3;i++) {
fprintf(stdout, "a[%d] = %d\n", i, a[i]);
}
return 0;
}

225 :デフォルトの名無しさん:2013/11/23(土) 00:03:55.25
>>222
http://ideone.com/MXzCDY

226 :デフォルトの名無しさん:2013/11/23(土) 00:38:56.78
>>222
1000までの素数
http://ideone.com/ZMEMiA

227 :デフォルトの名無しさん:2013/11/23(土) 09:17:36.96
>>222

#include <stdio.h>

int main(int ac, char **av) {
int i, j, a[] = {29, 7, 0, 3, -67, -12, 87, -8, 3, -6, -8, -54};
for(i = 0, j = 72; i <= sizeof(a) / sizeof(a[0]); j += a[i++])
putchar(j);
return 0;
}

228 :デフォルトの名無しさん:2013/11/23(土) 20:32:58.22
うわーーーー
間違えて
rm -f * *.core
ってやったらソースが全部消えた
これ戻せないの?

229 :デフォルトの名無しさん:2013/11/23(土) 20:36:34.34
svnとかgit使えよ

230 :デフォルトの名無しさん:2013/11/23(土) 20:38:20.86
$ echo undo && rm -rf /
こっちが駄目なら、
$ echo redo && rm -rf /
ってやってみ?

231 :デフォルトの名無しさん:2013/11/23(土) 20:46:30.54
>>230
追い討ちかけるひどいやつ

232 :デフォルトの名無しさん:2013/11/23(土) 20:54:24.03
>>228
そりゃ消えるだろ

233 :デフォルトの名無しさん:2013/11/23(土) 20:57:10.70
OS書いてないからlinuxを仮定。
あまり期待しないという前提で、ここでも読めや。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/181undelfile.html

234 :デフォルトの名無しさん:2013/11/24(日) 00:07:40.81
console作業必須なんだよね
リモートでsshでログインしてて
ランレベル1とかにしたらやばいよね

235 :デフォルトの名無しさん:2013/11/24(日) 00:17:45.76
ともかくデバイス全部ddで吸い出せれば、あとはゆっくり作業できる。
roにできるならそれに越したことはないが。

そもそもそこまで労力かけてでも回復すべきファイルなの?
そんな重要なら上にあるようなVCS使うべきだよね。

236 :デフォルトの名無しさん:2013/11/24(日) 00:20:48.97
悠長に構えてる間にそのファイルシステムに誰かが書いたりしないんだろうな?

237 :デフォルトの名無しさん:2013/11/24(日) 00:33:33.98
ゴミ箱ディレクトリに移動させる削除コマンドを自分で作れない>>228みたいな馬鹿が何でLinuxなんか使ってるんだろう

238 :デフォルトの名無しさん:2013/11/24(日) 00:41:21.57
その手のフールプルーフ系ラッパーもよしあし。
素のシステムを使う機会ができたときに
ふだんの習慣でどうせ回復できると思って怖い操作を実行してしまう。

239 :デフォルトの名無しさん:2013/11/24(日) 00:46:41.06
>>237
ネットワークドライブ上のファイルをゴミ箱に入れるにはどうやったらいいの?

240 :デフォルトの名無しさん:2013/11/24(日) 01:15:06.99
GoogleDrive

241 :デフォルトの名無しさん:2013/11/24(日) 01:30:00.96
どこがCの話だ。鼬害もほどほどにね。

242 :デフォルトの名無しさん:2013/11/24(日) 18:53:03.34
mblen関数に半角カナを指定した場合の戻り値は、s-jis環境なら1、euc-jpなら2、utf-8なら3となりますか?

あと、s-jisであれば
if(s=='ア') ←半角のア
と書いて正常動作しますか?

ちょっと環境がなくて試せませんので、わかる方教えてください。

243 :デフォルトの名無しさん:2013/11/24(日) 21:07:41.45
euc-jpなら3バイトだろうな

244 :デフォルトの名無しさん:2013/11/24(日) 21:48:46.22
複数のスレから一瞬で語句検索する方法教えて下さい。
例えばC言語なら俺に聞けスレはpart122まできてますよね?
partの数字は忘れたけど質問した内容が分かるとき、キーワード
で検索したいんです。

245 :デフォルトの名無しさん:2013/11/24(日) 21:51:22.08
専ブラ使え
grep 使え

246 :デフォルトの名無しさん:2013/11/24(日) 22:04:04.46
>>244
その用途にCは向かない
正規表現使える言語の使用を検討すべき

247 :デフォルトの名無しさん:2013/11/24(日) 22:05:41.56
>>245
専ブラってあの情報流出事件以来使えなくないですか?
●でしょ?

grepってブロック検索じゃなかったっけ?

"ありがとうございます"は検索できるけど
"りがとうございま"では検索できませんよね?

248 :デフォルトの名無しさん:2013/11/24(日) 22:09:06.26
>>247
できます

249 :デフォルトの名無しさん:2013/11/24(日) 22:11:44.98
専ブラって有料か…
●以外の専ブラ教えて下さい

250 :デフォルトの名無しさん:2013/11/24(日) 22:12:48.17
jre.dllとかhmjre.dllとかCで使えるよ

251 :デフォルトの名無しさん:2013/11/24(日) 22:40:51.33
専ブラって有料か…
●以外の専ブラ教えて下さい

252 :デフォルトの名無しさん:2013/11/24(日) 22:48:07.13
C#経験者です。
会社の先輩にC言語勉強しろと言われたので勉強してますが、
C#と比べると標準ライブラリが貧弱すぎて困っています。

C#の.Netのように大抵のものが入ってるライブラリはありませんか?

253 :デフォルトの名無しさん:2013/11/24(日) 23:04:31.47
Cで外部ライブラリってあんま使わんな
難しいことしたきゃC++にしとけ

254 :デフォルトの名無しさん:2013/11/24(日) 23:25:07.81
C#ってそんなに便利か?

255 :デフォルトの名無しさん:2013/11/24(日) 23:32:44.21
無目的に「勉強」しようとするから訳のわからないところで詰まるのじゃ

256 :デフォルトの名無しさん:2013/11/24(日) 23:34:06.73
.NET Frameworkがクソ便利

257 :デフォルトの名無しさん:2013/11/24(日) 23:41:09.66
FA業界にいるが、C#なんて使ったときねー
装置制御はC++
MMIはC++/MFC
ツール MFC

で大抵書けちゃうからな

258 :デフォルトの名無しさん:2013/11/24(日) 23:54:18.82
MFCなんか今更使うくらいならC#使うわ

259 :デフォルトの名無しさん:2013/11/24(日) 23:54:50.33
既存のものを置き換えるほどではないけど
今1から作るならMFCよりはC#でWPFをつかうかなあ

260 :デフォルトの名無しさん:2013/11/25(月) 00:35:29.58
>>258
今更MFCをつかうことはないだろうな
仕事だと昔からの遺産があるだな

261 :デフォルトの名無しさん:2013/11/25(月) 07:48:53.61
ターゲットの製品はCで、開発用のツールはC#だな。C#が何かとクソ便利過ぎる。

ほんの一例だが、
string line = "aaa\tbbb\tccc";
string[] fields = line.Split('t');
これだけでaaa, bbb, cccの3つの文字列に分解出来るし、
他に、ループをマルチコアで並列で実行とか、既存関数の処理にキーワード(async,await)を
追加するだけでその部分を非同期に実行してくれる(非同期が終わったら続きの同期部分を処理)
してくれるとか。

262 :デフォルトの名無しさん:2013/11/25(月) 08:44:01.14
わかってないな
MFCはネイティブアプリを作成することができる
.NETは仮想環境上で動作するアプリしか作れない
この差が決定的で.NETがどうあがいてもMFCの代わりにはならない点である

263 :デフォルトの名無しさん:2013/11/25(月) 08:54:34.22
.netは無駄なメモリ食うだけ
exeの肥大化、低速

264 :デフォルトの名無しさん:2013/11/25(月) 08:59:17.31
ゲーム作るならDXライブラリと.NETどっちが良いですか?
例えばポケモンみたいなゲーム作るとして。

265 :デフォルトの名無しさん:2013/11/25(月) 09:04:05.71
OpenGL
いまなら
WebGL
でもいい

266 :デフォルトの名無しさん:2013/11/25(月) 10:13:34.78
>>264
.NET一択

267 :デフォルトの名無しさん:2013/11/25(月) 12:02:15.75
>>264
多分まともに一本完成させたことがないレベルと想定しつつ
DXライブラリを勧めよう

268 :デフォルトの名無しさん:2013/11/25(月) 21:21:01.96
>>261
みたいな”ゆとり”が

char* line = "aaa\tbbb\tccc";
をaaa, bbb, cccの3つの文字列に分解するにはどうすればいいですか?

みたいな質問をしてるんだろうな

実際には"aaa\tbbb\tccc"みたいなベタはことは殆んど無くて
文字コード、tabを含む文字列、複数行にも最低限対応しないとCSVとしてはつかえない
そうなると.netのライブラリもお手上げだろ?

結局は自前でシコシコやるしかない

実務ではCと変わらないんだよ

269 :デフォルトの名無しさん:2013/11/25(月) 21:24:23.75
おっさんだってC#使ってるし、いまさらアプリケーションでCとかあり得ん

270 :デフォルトの名無しさん:2013/11/25(月) 21:36:51.15
>>268
CSVは公式仕様が決まってるから個人が独自に実装することなんてありえないよ。
C言語だろうとC#だろうと。
独自に実装してしまうと他人が作ったCSVを読めなかったり、他人が読めないCSVを吐くことになって都合が悪い。

271 : ◆QZaw55cn4c :2013/11/25(月) 22:26:24.57
CSV の公式仕様なんて存在するの?RFC4180 には\のエスケープがないようだけど?

272 :261:2013/11/25(月) 22:28:20.12
シフトJISで、区切りはタブで、フィールドに区切り文字を含む複数行のCSVファイルだとこんな感じだな。
もちろん、SetDelimitersにカンマを指定すれば、カンマ区切りの普通のCSVも扱えるし。
文字コードも、Unicode系、EUC、1バイトコード系とかEncodingに指定するだけでほとんど扱える。

using(TextFieldParser parser = new TextFieldParser("csvfile.csv", Encoding.GetEncoding("Shift_JIS")))
{
parser.HasFieldsEnclosedInQuotes = true;
parser.SetDelimiters("\t");

while (!parser.EndOfData)
{
string[] fields = parser.ReadFields();

}
}

273 :デフォルトの名無しさん:2013/11/25(月) 22:35:33.71
>>272
それは "〜" でくくられた中にある , を区切りとしてみなさないようにしてくれるの?また " をエスケープする方法は何を想定しているの?
\ でエスケープする処理系があったりするが、それには対応しているの?\ かりにそうだった場合、自体をエスケープする方法はなんなの?

274 :261:2013/11/25(月) 22:45:14.97
>>273
> それは "〜" でくくられた中にある , を区切りとしてみなさないようにしてくれるの?
してくれる

> " をエスケープする方法は何を想定しているの?
""でエスケープ出来る。

\でのエスケープは対応してないみたいだな。

275 :デフォルトの名無しさん:2013/11/25(月) 22:48:50.56
スレチを得意げにいつまで続けるのか

276 :デフォルトの名無しさん:2013/11/25(月) 23:14:54.78
Linux,gcc,makeのmakefileもここでいいのか?

277 :デフォルトの名無しさん:2013/11/25(月) 23:54:29.96
こことか
make
http://toro.2ch.net/test/read.cgi/unix/1079538957/l50

278 :デフォルトの名無しさん:2013/11/26(火) 00:02:35.60
>>271
公式仕様と言ったら普通はRFCだろう
君が2chに駄文を書き込めるのもHTTPがRFCで決められているおかげだよ

> RFC4180 には\のエスケープがないようだけど?

これは何が言いたいのかわからない。
RFCはあらゆる独自規格の最小公倍数を取るものじゃないし、
標準化のトレードオフと併せていくつかの独自実装は切り捨てるにきまってるだろう

279 :デフォルトの名無しさん:2013/11/26(火) 01:24:55.30
UDPでサーバーとクライアント2つのチャットプログラムつくろうとしてるんだけど
クライアント1がサーバーに接続→クライアント2がサーバーに接続→サーバーがそれぞれのクライアントに送り先のIPアドレスとポート番号を渡す
→以降はサーバーを介さずクライアント1とクライアント2がrecvfromとsendtoでメッセージをやりとり
の流れにしたいんだけどもサーバーの中継部分がようわからんちん

280 :デフォルトの名無しさん:2013/11/26(火) 04:00:46.51
>>279
中継って何を?
UDPなんだからそのままそれぞれに投げさせればいいんじゃないの?
それより最初のユーザー2者のマッチングのが面倒そうだが

281 :デフォルトの名無しさん:2013/11/26(火) 07:04:31.48
>>279
もしかしてホールパンチングとか使う話か?

282 :デフォルトの名無しさん:2013/11/26(火) 21:30:12.26
イテレータについて質問です。
for(i=0; i<=10; i++)の文にある通り
forは一つずつ順番に配列の要素にアクセスできます。
これはforはイテレータの機能があると言っていいのでしょうか?

283 :デフォルトの名無しさん:2013/11/26(火) 21:34:59.82
>>282
ノー

284 :デフォルトの名無しさん:2013/11/26(火) 21:45:05.15
>>283
ありがとうございます。

285 :デフォルトの名無しさん:2013/11/27(水) 06:30:01.82
>>282
イテレータの機能はイテレータ自身が持つ
イテレータの機能とはずばり、hasNext()問い合わせとfetchDataAndNext() 実行関数だ

286 :デフォルトの名無しさん:2013/11/27(水) 07:58:20.38
Java の hasNext() は動作がきもいな

287 :デフォルトの名無しさん:2013/11/27(水) 08:15:47.86
よくわからないからrubyで例えて教えてくれ

288 :デフォルトの名無しさん:2013/11/27(水) 14:10:12.08
p != '\0'
*p++

こういうことだ

289 :デフォルトの名無しさん:2013/11/27(水) 14:16:29.41
C++ のイテレータの場合
*it がカレントオブジェクトなのに
Java だと
it.next() がカレントオブジェクトになるのがきもいんだ

っていうかおまいらスレ違いだ

290 :デフォルトの名無しさん:2013/11/27(水) 18:33:52.74
C言語なら得意なんだけどなぁと言っていたので、
ポインタを教えてって言ったら(知ってるけど)
「あ、ポインタは挫折しました」って言われた・・・・・・・・・。

ポインターだめなのに得意と言ってしまっていいの?

291 :デフォルトの名無しさん:2013/11/27(水) 18:42:35.69
いかんでしょ

292 :デフォルトの名無しさん:2013/11/27(水) 18:51:33.52
専門学校でC言語教えてましたって人に
「ANSI Cって何ですか?」って言われたことあるな

293 :デフォルトの名無しさん:2013/11/27(水) 19:05:23.54
>>290
きっと俺達の知らないC言語があるんだろう

294 :290:2013/11/27(水) 19:21:46.55
でもハード得意って言ってるの

295 :デフォルトの名無しさん:2013/11/27(水) 19:23:40.34
>>292
それ、強烈なイヤミだよ

296 :デフォルトの名無しさん:2013/11/27(水) 19:37:18.86
>>294
アセンブラしか分からない、ポインタは苦手って人なら知ってる

297 :デフォルトの名無しさん:2013/11/27(水) 19:39:27.82
アセンブラが分かるならむしろ簡単だと思うんだが
よほど変態的な使い方を見て苦手意識を抱いたのかも

298 :デフォルトの名無しさん:2013/11/27(水) 19:45:58.45
いつもの変態的な使い方pls ↓

299 :デフォルトの名無しさん:2013/11/27(水) 20:00:33.93
signal

300 :デフォルトの名無しさん:2013/11/27(水) 20:01:37.49
>>296
やりたいことを実現するための記述のしかたが分からないだけだろう。

301 :デフォルトの名無しさん:2013/11/27(水) 20:29:03.80
・プログラムを機能ごとの部品化できない人
・多数の人と連携してプログラミングをしたことのない人(学生に多い)

この2つのどちらか、もしくは両方当てはまる人は、ポインタを理解できない(というよりポインタの有用性がわからない)ケースが多い。

302 :デフォルトの名無しさん:2013/11/27(水) 20:32:21.60
因果関係じゃないだろそれ

303 :デフォルトの名無しさん:2013/11/27(水) 20:33:45.20
ポインタ関係なさすぎ

304 :デフォルトの名無しさん:2013/11/27(水) 20:40:14.54
不思議だなw
「ポインタを理解できてる」という発言も、
「ポインタを理解できてない」という発言も、
なんか不思議に聞こえる。

おそらく、「ペンチを(略」とか、
プライヤー、ニッパー、ハンマーとかと同じ。
ただ使うだけでは??と思っちゃうから。

305 :デフォルトの名無しさん:2013/11/27(水) 20:46:11.99
そう、使って覚える概念だよね。
言葉で説明したり理解しようとするとやっかいなもの。
ポインタとはポインタでしかない。

306 :デフォルトの名無しさん:2013/11/27(水) 20:47:25.97
>>304
おまえの頭の悪いたとえのほうが理解できんわ

307 :デフォルトの名無しさん:2013/11/27(水) 20:54:42.45
>>304
「ポインタ」を「微分・積分」に置き換えてみ。
数学の道具だから。

308 :デフォルトの名無しさん:2013/11/27(水) 21:02:04.79
※ただし使い方を間違ってもどう間違ったかわからない※

309 :デフォルトの名無しさん:2013/11/27(水) 21:15:03.55
数式の間違いと一緒だな。

310 :デフォルトの名無しさん:2013/11/27(水) 21:23:54.43
大部分わかってれば完全理解なんていらない。

311 :デフォルトの名無しさん:2013/11/27(水) 21:25:04.16
マシン寄りの質問なんですが
4×5っていう計算はコンピュータでは4×5をしてるのか
4を5回足してるのかどっちですか?

312 :デフォルトの名無しさん:2013/11/27(水) 21:25:54.52
ポインタという名が抵抗感を生むのかもしれない。
単なるアドレスなのだと分かればなんてことはない。

313 :デフォルトの名無しさん:2013/11/27(水) 21:27:06.82
a=4*5;の計算はアセンブラのコードだと

LET a 0
SUM 0100
SUM 0100
SUM 0100
SUM 0100
SUM 0100

で良いですか?

314 :デフォルトの名無しさん:2013/11/27(水) 21:27:15.16
>>311
その2者だけではなく、5を4回足してる可能性も考えてこそプログマラだ。

315 :デフォルトの名無しさん:2013/11/27(水) 21:27:51.16
>>311
CPUの掛け算の命令はかける値によって計算時間がかわったりしないから、掛け算をやってるんじゃないの。

316 :デフォルトの名無しさん:2013/11/27(水) 21:28:53.06
>>311
掛けてる

317 :デフォルトの名無しさん:2013/11/27(水) 21:29:08.13
>>314
細かく言えばそうかもしれませんが本質は
掛け算なのか足し算なのかどっちでしょう?

掛け算の場合どういったアセンブラコードになりますか?

LET a 0
MULTI 0100
MULTI 0101
END

こんな感じですか?

318 :デフォルトの名無しさん:2013/11/27(水) 21:31:14.38
>>315
計算時間は足し算も掛け算も一緒ですけどね
掛け算のほうが繰り上がりが無いから早いんですかね

319 :デフォルトの名無しさん:2013/11/27(水) 21:31:54.38
出力されるアセンブリのコードはCのコードによる。
4*5と書いてあるのなら、通常、計算させずに最初から20になる。

320 :デフォルトの名無しさん:2013/11/27(水) 21:33:59.73
掛け算の場合2倍はシフトですが、3倍って不可能じゃないですか?
どうやってるんでしょう?36倍だと4*9ですが、どうやって3倍を実現
してるんですか?32倍してから仕方なく後は足し算をしてるんでしょうか?

321 :デフォルトの名無しさん:2013/11/27(水) 21:34:22.45
>>297
間接(インダイレクト)アドレッシングが使えないチップも有るからね。

322 :デフォルトの名無しさん:2013/11/27(水) 21:34:59.86
>>318
>計算時間は足し算も掛け算も一緒ですけどね
どういう意味だ?

323 :デフォルトの名無しさん:2013/11/27(水) 21:36:01.31
>>319
4*5レベルなら計算ではなく20って決まってるんですか?

324 :デフォルトの名無しさん:2013/11/27(水) 21:36:05.29
CPUの内部で演算をどういうロジックでやってるかは知らんけど、足し算を繰り返すなんてことはやってないだろ。

325 :デフォルトの名無しさん:2013/11/27(水) 21:38:18.94
算術演算子なるものが存在するってことは、ふつうにやってれば
掛け算はシフトではないんでしょうか?
考えれば考えるほど難しいですねー
どんな計算をしてるんだろう?

326 :デフォルトの名無しさん:2013/11/27(水) 21:40:30.43
>>324
でもそのロジックはアセンブラを見たらわかるんでしょう?
誰か見た人いませんか?どうやって掛け算をしてるのか気になります

327 :デフォルトの名無しさん:2013/11/27(水) 21:42:52.43
>>325
原始的なシフトしてから足す方式もあるし、キャッシュ方式もある。
100000*100000なんてのが
愚直に100000回足してると思っちゃダメだぞ。

328 :デフォルトの名無しさん:2013/11/27(水) 21:44:22.76
>>327
キャッシュ方式だと、過去の計算を参照するため実行時間が長くなるほど
計算速度は早くなるんですか?

329 :デフォルトの名無しさん:2013/11/27(水) 21:45:09.45
>>326
アセンブラみてもわからない。
アセンブラはCPUに掛け算しろって命令だから、CPUの中でどういう計算してるかはわからない。

CPUの作り方みたいな本を見たことあるから、そういうの見れば載ってるかもしれない。

330 :デフォルトの名無しさん:2013/11/27(水) 21:47:04.21
>>328
違う。計算済みのテーブルがある。
2次キャッシュという意味でキャッシュ使うのは、処理系の機構。
CPU自体にそういう機能があるかも知れないが、俺は知らん。

331 :デフォルトの名無しさん:2013/11/27(水) 21:53:03.11
ちなみに前者な方式だと、ビットシフトして1に当たった場合に加算という物。
10001010 * 00010100 の場合、 (10001010 << 4) + (10001010 << 2) が入る。

332 :デフォルトの名無しさん:2013/11/27(水) 21:59:01.92
乗算器でぐぐればそれっぽいのでてくるやろ

333 :デフォルトの名無しさん:2013/11/27(水) 22:00:37.15
>>331
1に当たる?

334 :デフォルトの名無しさん:2013/11/27(水) 22:05:55.10
>>333
わからんか・・。
7 6 5 4 3 2 1 0
0 0 0 1 0 1 0 0
こういう風に1に当たる部分の回数分、被乗数をシフトして加算していく。

335 :デフォルトの名無しさん:2013/11/27(水) 22:06:22.97
2項 * のコンパイル結果くらい見ろよ
mul か shl かわかればいいんだろ?

時間が気になるなら、まず実測してみろよ

336 :デフォルトの名無しさん:2013/11/27(水) 22:07:26.69
>>334
なるほど
それって35倍とかでもできます?

337 :デフォルトの名無しさん:2013/11/27(水) 22:12:15.66
できるっぽいですね
調べてみます^^
シフトすげー、これでCPU革命起きるでしょ

338 :デフォルトの名無しさん:2013/11/27(水) 22:13:39.19
>>336
例えば10の35倍の場合
35 (10) = 100011 (2)
10 (10) = 1010 (2)

1010 * 100011 = (1010 << 5) + (1010 << 1) + (1010 << 0)
=101011110 (2) = 350 (10)

筆算で書くと
101000000
+000010100
+000001010
=101011110 (2) = 350 (10)

339 :デフォルトの名無しさん:2013/11/27(水) 22:15:24.64
真面目に書いたのに釣りかよ・・

340 :デフォルトの名無しさん:2013/11/27(水) 22:16:04.07
>>338
奇数の場合は>>0足したらいいだけですか、すげー
シフト凄いですね

341 :デフォルトの名無しさん:2013/11/27(水) 22:18:40.65
>>339
いや釣りじゃないですよ、シフトって計算が一瞬でできるじゃないですか
このスレでシフトの話あんまり出てきませんよね?もっと話しましょう

342 :デフォルトの名無しさん:2013/11/27(水) 22:22:11.64
あれ?これマイナスの掛け算は無理なのかな

343 :デフォルトの名無しさん:2013/11/27(水) 22:29:01.38
いまのCPUだったらちょうど2倍とか4倍とかそういうんじゃないなら、
素直に掛け算は掛け算としてやらせたほうがいいと思うよ

344 :デフォルトの名無しさん:2013/11/27(水) 22:31:35.76
>>343
なるほど、小数点の計算もありますからね

345 :デフォルトの名無しさん:2013/11/27(水) 22:31:45.54
だからCPUがそういう演算してるんだって

346 : ◆QZschizo.ptH :2013/11/27(水) 22:38:32.66
>>313
sum というニーモニックを使うのか?そもそも使われる可能性があるのか?
加減乗除->add/sub/mul/div
和差積商->sum/diff/(product)/(quotient)

347 : ◆QZschizo.ptH :2013/11/27(水) 22:40:49.99
>>317
むしろ、乗算や除算を加算or減算の繰り返しではない方法で、たとえば CASL で記述できたら、アセンブラの学習は卒業だ
がんばってくれ

348 :デフォルトの名無しさん:2013/11/27(水) 22:41:51.04
>>327
>キャッシュ方式
pentium のバグみたいなやつか?kwsk

349 :デフォルトの名無しさん:2013/11/27(水) 22:53:58.90
じゃあお前は 37 * 52 をどうやって計算するんだ
37 を 52 回足すわけじゃないだろ?
(37 * 5) * 10 + (37 * 2) って計算するだろ?

この *10 の部分が2進数では *2 になり、それこそがシフトだ
革命でも何でもない、誰しもが小学校で学んでる技術だ

350 :デフォルトの名無しさん:2013/11/27(水) 22:56:25.06
>>341
1bitずつじゃなく、任意のNbitを一定のクロックでシフトする回路図を書いてみな
入力Nに対応するワイヤが忽然と出現するわけじゃないので、
おまえが言うほど簡単じゃないぞ

# かつてCPU判別にシフト命令のバグを使い・・

351 :デフォルトの名無しさん:2013/11/27(水) 23:03:17.71
ブースのアルゴリズムでぐぐってみよう

352 :デフォルトの名無しさん:2013/11/27(水) 23:12:58.61
>>350
いやクロックは並列的に使えるんですから
Nビット同時にシフトするのは簡単なのでは?
クロックって電位みたいなもんですよね?

353 :デフォルトの名無しさん:2013/11/27(水) 23:28:49.21
>>352
ファンアウトしたあと合流どうすんでい

354 :デフォルトの名無しさん:2013/11/28(木) 00:15:57.84
>>352
みたいなもんとか、知りもしないのに何で自信たっぷりなの?

355 :デフォルトの名無しさん:2013/11/28(木) 00:24:55.11
まあ、クロックは電位であって、そこは間違っていない
二相クロックあたりになると怪しそうだが

356 :デフォルトの名無しさん:2013/11/28(木) 00:26:17.66
すまんが、「クロックは電位」って意味がさっぱりわからん

357 :デフォルトの名無しさん:2013/11/28(木) 00:27:12.93
心電図みたいなもんか?w

358 :デフォルトの名無しさん:2013/11/28(木) 00:52:07.31
平たく言えばお日様みたいなもんだ
クロックにもお日様にも raise と fall があって、
社会(システム)全体がそれにタイミングを合わせることで秩序をなしている

クロックの表現は H (正極付近)と L (負極付近)の両極端の電位で、
それらが切り替わるエッジが非同期回路(零細)の納期みたいなもんだ

心電図と慣例づけたい人は矩形派を微分してみるといいだろう
U波みたいのがあると困るんだけどね

359 :デフォルトの名無しさん:2013/11/28(木) 00:55:01.21
アナログはデジタルじゃないけどデジタルはアナログなんだ

360 :デフォルトの名無しさん:2013/11/28(木) 00:55:12.39
鼬害の話題で大間違いを垂れ流すのもいい加減にしろよ。
H/Lがなんで正極/負極なんだよpgr

361 :デフォルトの名無しさん:2013/11/28(木) 01:00:28.82
>>360
何か間違ったこと言ったか?

362 :デフォルトの名無しさん:2013/11/28(木) 01:04:49.53
発振器動かすのは2電源じゃなくて単電源だろ!
ってことじゃね
知らねーけど

363 : ◆QZschizo.ptH :2013/11/28(木) 05:09:00.96
>>350
つバレルシフタ

364 :352:2013/11/28(木) 08:36:40.60
クロックが電位ってのはどういう意味で使ったかっていうと、全ての
素子に対してその大きさや変位が同期してるからです
だからクロックはエネルギーである電位と同じなのかと思いました

365 :デフォルトの名無しさん:2013/11/28(木) 08:43:03.99
クロックは電位とか、電位はエネルギーとか、オレオレ定義やめとけ
まわりが混乱するだけじゃなく、自分も混乱する

366 :デフォルトの名無しさん:2013/11/28(木) 08:52:52.91
だから鼬害だってばよ。
まぁ尤も、そんな俺様定義の話なんか他の痛手も聞かないだろうけど。

367 :デフォルトの名無しさん:2013/11/28(木) 09:24:00.18
>>308
※ただし使い方を間違っても間違っていることにすら気付かない※

368 :デフォルトの名無しさん:2013/11/28(木) 09:38:59.59
>>367
そういう奴は俺C言語得意だぜ♪ となるからまた別の話

369 :デフォルトの名無しさん:2013/11/28(木) 09:47:16.40
※ただし使い方を間違うのを嫌ってDのような言語を創っちゃう強者もいる※

370 :デフォルトの名無しさん:2013/11/28(木) 10:07:58.64
for(a; b; c)
最後の引数だけセミコロンが無いのは何故ですか?

371 :デフォルトの名無しさん:2013/11/28(木) 10:25:14.90
for( ; ; )

372 :デフォルトの名無しさん:2013/11/28(木) 10:29:07.65
while() も if()もセミコロンがないしな。

373 :デフォルトの名無しさん:2013/11/28(木) 11:10:44.10
クロック自体は電位でなく時間単位だし、
クロックが主に使う電位も電圧=電位差であって
エネルギーじゃなくエネルギー差だな
適当に言葉を使ってるのは確かだから気をつけろ

374 :デフォルトの名無しさん:2013/11/28(木) 11:11:39.28
cの派生言語がこれだけ氾濫しているのは
cが優れていた訳ではなく
むしろ全く頼りなかったからこそなのだろう
今現在まさにその位置にいるのがjavascriptだ

375 :デフォルトの名無しさん:2013/11/28(木) 11:33:35.56
いや、Cが優れていたんだろ
結局の所、移植性が一番大事

376 :デフォルトの名無しさん:2013/11/28(木) 11:34:05.25
>>373
負極=GNDととってくれない人(たち?)が
三相交流ならぬ二相直流みたいなこと言い出してて
笑い転げてたら寝ちまってた

今思い返してみると、あいつ(ら?)シングルエンドと差動のことでも言いたかったのかね

377 :デフォルトの名無しさん:2013/11/28(木) 11:38:45.91
>>363
その用語は使うとブラックボックスになるので避けていた
この判断が正しかったかどうかはご覧のとおり

378 :デフォルトの名無しさん:2013/11/28(木) 11:39:36.48
バカがスレチを続ける
内容も見当違いだし永遠に寝てればいいのに

379 :デフォルトの名無しさん:2013/11/28(木) 11:57:45.02
流れ読んでね
>>311あたりから始まった乗算の話の中で
シフト演算についてマジレスplzがあったんだよ

380 :デフォルトの名無しさん:2013/11/28(木) 12:02:07.73
C言語スレなんだから適切な板/スレ/サイト/書籍にリダイレクトして終了だろ

381 :デフォルトの名無しさん:2013/11/28(木) 12:02:33.52
>>374
Cの派生って言っても、本当に派生してるのはC++とObjectiv-Cくらいで、他はぱっと見た目がCっぽいってだけだよね。

382 :デフォルトの名無しさん:2013/11/28(木) 12:17:59.07
昔は±12Vのクロックとかあったな

383 :デフォルトの名無しさん:2013/11/28(木) 12:20:16.78
RubyはC++が糞だったから産まれたんだろ
知ってるぜ

384 :デフォルトの名無しさん:2013/11/28(木) 12:31:50.07
>>380
いや、あくまでCの話だよ
君(誰?)がついてこれるかどうかを配慮していないが

385 :デフォルトの名無しさん:2013/11/28(木) 12:33:59.50
飽くまでって、確実に板違いだぞ
CPUの機構なんだから

386 :デフォルトの名無しさん:2013/11/28(木) 12:36:59.15
>>384
おまえのレスがどれとどれか特定してくれ
そうしたら、それがCの話かどうか判定してやるよ

387 :デフォルトの名無しさん:2013/11/28(木) 12:45:33.72
ばれるシフトJISがどうかしたか

388 :デフォルトの名無しさん:2013/11/28(木) 12:47:15.58
>>386
あんたに判定は頼んでないよ
俺がCの話だと断言してるんだ

389 :デフォルトの名無しさん:2013/11/28(木) 12:53:18.30
お前がいくら断言しようがスレチはスレチ

390 :デフォルトの名無しさん:2013/11/28(木) 13:07:09.37
>>350 ← こいつだな
この映像の23分55秒あたりから回路図があります。説明はもうちょっと前から。
http://stream.ouj.ac.jp/asxgen/Testhaishin/1542109/1542109_11.wmv.asx
http://www.ouj.ac.jp/hp/eizou/kamoku/computer.html

391 :デフォルトの名無しさん:2013/11/28(木) 13:57:04.44
>>373
クロックも電位も交流なので時間変数なのでは?

E=sin(ωt+Θ) (周期ω)

T=1 or 0 (周期ω)

392 :デフォルトの名無しさん:2013/11/28(木) 14:01:27.81
>>391
それとレス先と何の関係が?
頭悪いと大変なんだな

393 :デフォルトの名無しさん:2013/11/28(木) 14:04:48.80
岡部洋一のこれでも読んでくれ
ttp://www.moge.org/okabe/lectures/computer/computer2013.pdf

394 :デフォルトの名無しさん:2013/11/28(木) 14:08:11.52
お前バレてないと思ってるの?
自己顕示のためにあさっての意味不明なツッコミをする癖直せよ

395 :デフォルトの名無しさん:2013/11/28(木) 14:14:29.34
何が時間変数なのでは?だよ
反論にしても話題の提供にしても全然繋がってない

他人にレス番付けるなら繋げろボケ
自分の満足のために、
自分のしてほしい話をする責務を他人に投げてんじゃねーよ

396 :デフォルトの名無しさん:2013/11/28(木) 14:22:23.37
>>395
反論らしいことを書いてるのにアンカーつけてないやつのほうがイライラするわ。
チキンか。

397 :デフォルトの名無しさん:2013/11/28(木) 14:24:29.25
複数のファイルで関数を使いまわすときはプロトタイプ宣言がいるのに、1つのファイルで適当に書く場合プロトタイプ宣言がいらないのってなんでですか?

398 :デフォルトの名無しさん:2013/11/28(木) 14:27:05.55
>>396
で、どこが反論なわけ?コミュ障ですか?
きちんと論理だって説明してくださいよ。ねえ。

399 :デフォルトの名無しさん:2013/11/28(木) 14:28:25.32
>>397
1つのファイルでも必要
順番を入れ替えてみれば分かる

400 :デフォルトの名無しさん:2013/11/28(木) 14:31:18.91
>>398
なんだこのスレとは関係ないけどムカつくことがあったからここに書き込んだだけなのか。
なら許すよ。
スレちがいはほどほどにな。

401 :デフォルトの名無しさん:2013/11/28(木) 14:31:59.09
ひとつのファイルの中でも利用する部分と定義する部分の順序が逆だと(前方参照だか後方参照だか)プロトタイプ宣言は必要だよ

402 :デフォルトの名無しさん:2013/11/28(木) 14:32:44.26
>>400
>クロックも電位も交流なので時間変数なのでは?
早くこれと>>373をつなげてくださいよQzさん

403 :デフォルトの名無しさん:2013/11/28(木) 14:35:04.47
>>402
最初からそういうふうにアンカー振れよ。
煽るのにビビってるんじゃねえよ。
おまけに見えない敵と戦ってるし。

おれはその話題に関連してないからしらんわ。

404 :デフォルトの名無しさん:2013/11/28(木) 14:37:21.23
>>403
ビビるビビらないって、本当にそれだけしか言ってないの?
頭の中中学生ですか?悪いだけじゃなくて空っぽですか?

405 :デフォルトの名無しさん:2013/11/28(木) 14:41:01.41
関係ない話題振っておいて、
反論されたら他人の書いたカテゴリが同じって程度の文書のを貼って
さも反論できたかのアピール

こんな頭の悪いレスするのQzぐらいしかいないっつの
いい加減学習しろよ

406 :デフォルトの名無しさん:2013/11/28(木) 14:42:59.23
>>390
おまえさ、レポートは自分で書いたのを出せよな
23分55秒もいらねえよ、350で言った回路図は紙1枚で充分だ

# 俺は提出せよとは言ってないが

407 :デフォルトの名無しさん:2013/11/28(木) 14:50:59.71
>>404
ほんとうに見えない敵と戦ってるやつってめんどうだな。
ID付の板でもID変えて複数にみせてるとか言い出すヤツいるし。
病んでるわ。

408 :デフォルトの名無しさん:2013/11/28(木) 14:58:42.75
>>407
別人ならなおさら悪いわ
つーかQzでも当事者でもないなら
本当に>>404って事だがわかってんのか?

>クロックも電位も交流なので時間変数なのでは?
早くこれと>>373をつなげろボケ

409 :デフォルトの名無しさん:2013/11/28(木) 15:11:19.88
goto hell;

410 :シフト:2013/11/28(木) 18:16:53.16
なんか昨日俺がしてた話でまだ盛り上がってますね
結局Nビットを同時にクロックから並列的に線をつないでやれば
簡単だと思いますけどね、フリップフロップの原理じゃないですか?
電子回路の仕組みは詳しく分からないけれども

411 :デフォルトの名無しさん:2013/11/28(木) 18:54:08.26
>>410
おう、君か
昨夜は体に良い腹筋運動させてくれてありがとう

で、続きだが
並列さすのはいいが結果を選択せにゃならんだろ
ポニーテールみたいに束ねるとショートするぞ
どうする?

難しく考えなくていいぞ、ソフト屋の思考だけでちゃんと答えは出る

412 :シフト:2013/11/28(木) 19:04:06.84
>>411
横にずらせばいいと思います、だからNビットを左に一斉に

413 :デフォルトの名無しさん:2013/11/28(木) 19:09:15.77
>>412
それはおかしいね、並列させてるんじゃなかったの?
少なくとも (0,N]bit シフトさせた結果が同時に出てるはずなんだが
どうやって Nbit シフトの結果だけを単離するんだい?

414 :デフォルトの名無しさん:2013/11/28(木) 19:35:15.20
おまえら、デンパ使えるんなら、2ch使わずに脳内で直接やれ

415 :デフォルトの名無しさん:2013/11/28(木) 19:43:12.79
放送大学見ろや

416 :シフト:2013/11/28(木) 20:02:51.10
>>413
同時じゃなくて後だと思うんですが

417 :デフォルトの名無しさん:2013/11/28(木) 20:05:13.30
>>416
何の後?

418 :デフォルトの名無しさん:2013/11/28(木) 20:57:09.98
シフトする前と、シフトした後
瞬間に状態が変化すると思うんですが

419 :デフォルトの名無しさん:2013/11/28(木) 22:24:28.37
シーン....

420 :デフォルトの名無しさん:2013/11/28(木) 22:57:53.41
グルン

421 :デフォルトの名無しさん:2013/11/28(木) 23:45:25.78
>>399 >>401
御返事遅くなってすみません
入れ替えてもエラーでないからアレレー、って思ったんですよ


自己解決したんですが、引数・返り値ともにintだとプロトタイプ宣言なくてもOK、っていう全く関係ない部分でひっかかっていただけでした…

422 : ◆QZschizo.ptH :2013/11/29(金) 07:23:00.86
>>421
というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん

423 :デフォルトの名無しさん:2013/11/29(金) 08:21:10.17
From: [422] ◆QZschizo.ptH <sage>
Date: 2013/11/29(金) 07:23:00.86

>>421
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん

424 :デフォルトの名無しさん:2013/11/29(金) 08:26:10.36
間違ってないが?

425 :デフォルトの名無しさん:2013/11/29(金) 08:30:26.70
From: [422] ◆QZschizo.ptH <sage>
Date: 2013/11/29(金) 07:23:00.86

>>421
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん
> というか、C は前方参照をお気楽に int 決め打ちとする困ったちゃん

426 :デフォルトの名無しさん:2013/11/29(金) 09:15:08.32
>>422
そりゃそうだ。
今時、ソースをメモ帳で書いてればな。

427 :デフォルトの名無しさん:2013/11/29(金) 09:24:37.36
いいえ、ideoneでしかプログラムしません/できません

428 :デフォルトの名無しさん:2013/11/29(金) 10:15:19.36
>>426
まるでメモ帳以外で書けば違う結果になるとでも言っているように見えるぞ。

429 :デフォルトの名無しさん:2013/11/29(金) 10:57:11.81
Qzの頭は間違いだらけだけど
レスの内容は別に間違ってないな

430 :デフォルトの名無しさん:2013/11/29(金) 11:08:41.19
敢えて指摘するなら、「お気楽に」と「困ったちゃん」だけだな。
プロトタイプ宣言がないのも時には役に立つ。

431 :デフォルトの名無しさん:2013/11/29(金) 11:22:13.82
QZの、「なんとかはいらない子っ」ってあれ何だっけ?

432 :デフォルトの名無しさん:2013/11/29(金) 11:49:29.99
#define Qz

433 :デフォルトの名無しさん:2013/11/29(金) 15:17:19.18
>>428
ん〜〜、あんたはプログラミングには向いてないな。

434 :デフォルトの名無しさん:2013/11/29(金) 15:26:09.76
>>433
何言っちゃってんの?

435 :デフォルトの名無しさん:2013/11/29(金) 16:00:32.12
>>432
それじゃ無視できないじゃん

436 :デフォルトの名無しさん:2013/11/29(金) 18:16:12.68
libtiffに詳しい人いますか?
Deflate compression support is not configuredというエラーが出て
画像を読み込むことが出来ないのですが、どうすれば解決できるでしょうか?

437 :デフォルトの名無しさん:2013/11/29(金) 18:27:35.99
なんでC言語ってプログラミング言語の頂点にして原点のような位置にいるんだろう。
対抗馬の言語はないのか?(アセンブラ除く。)

438 :デフォルトの名無しさん:2013/11/29(金) 18:29:42.77
アセンブラ除くならマシン語

439 :デフォルトの名無しさん:2013/11/29(金) 18:30:59.34
>>436
libtiffをDeflateサポートしてビルドし直す。

>>437
君が知らないだけでいくらでもある。
しかし、手続き型の最近の言語は何らかの形でCの影響を受けているのは事実。

440 :デフォルトの名無しさん:2013/11/29(金) 18:34:29.68
>>439
>君が知らないだけでいくらでもある。
具体的には言えない!(キリッ

441 :デフォルトの名無しさん:2013/11/29(金) 18:37:52.43
>>439
すみません…Deflateをサポートするにはどうすればいいんでしょうか?
libtiffをDL出来るところにありますか?

442 :デフォルトの名無しさん:2013/11/29(金) 18:39:59.57
pascalalgoladaaplfortranforthbasic

443 :デフォルトの名無しさん:2013/11/29(金) 18:57:37.64
>>442
lispがないのはまずいのでは?

444 : ◆QZaw55cn4c :2013/11/29(金) 19:01:40.47
>>430
循環させるときにはね、ほとんど経験したことがないなあ、代数式の処理くらいかな?
前方参照もしっかりみてくれる処理系って需要ありますか?

445 :デフォルトの名無しさん:2013/11/29(金) 19:01:53.17
main関数の引数が必要なときって端末から文字を入力するときだけなのでしょうか?
端末から入力する事なんてあまりないと思います、データファイルを読み込んで処理
する事が多いと思うので必要性を感じないのですが必要なのでしょうか?

446 :デフォルトの名無しさん:2013/11/29(金) 19:04:25.87
>>445
GUIを使う必要がない(使うまでもない)用途で便利。
つーか、複数のファイルを纏めてgrepするときにいちいちguiで指定するなんてとんでもない。

447 :デフォルトの名無しさん:2013/11/29(金) 19:07:46.28
>>444
static関数は前方参照を完璧サポート!!
になって欲しくね?

448 :デフォルトの名無しさん:2013/11/29(金) 19:08:25.46
>>441
libtiff公式。
そもそも、Deflateをサポートしていないビルドを何で使っているんだ?

449 :デフォルトの名無しさん:2013/11/29(金) 19:09:29.78
>>447
C++で書いたコードをCにダウンコンバートするときにそう思うw

450 :デフォルトの名無しさん:2013/11/29(金) 19:13:47.99
>>448
「libtiff linux」で出てきたサイトに従ってインストールしたらそうなってました…

451 :デフォルトの名無しさん:2013/11/29(金) 19:21:34.95
>>446
どう便利なのでしょうか?

452 :デフォルトの名無しさん:2013/11/29(金) 20:45:46.19
>>451
「コマンドプロンプト 使い方」でググれ

453 :デフォルトの名無しさん:2013/11/29(金) 21:03:55.18
エクスプローラから起動するにしても引数は渡される

454 :デフォルトの名無しさん:2013/11/29(金) 21:34:36.10
もう、4,5年C++やってますがいまだにポインタがわかりません。

実用性の是非はともかく
void** (**((**p)[]))(void** (**[])(void** (**)()));
を1分以内で理解できるくらいじゃないと、ポインタがわかってるとはいえないですよね?

455 :デフォルトの名無しさん:2013/11/29(金) 21:43:07.38
>>454
頭の悪い人には無理でしょうね

456 :デフォルトの名無しさん:2013/11/29(金) 21:48:39.27
ゲームを作っているものですが質問です。
世界一難しいゲームって知ってますか?
○(自分)を動かして、障害物に当たらないようにしてゴールを目指すゲームです。
こういったシンプルなゲームは作りやすいと思うのですが、javaやjavascriptで作るのか
それともCで作るのかどっちがゲームの処理速度は速いですかね?

457 :デフォルトの名無しさん:2013/11/29(金) 21:49:51.24
IA32ネイティブが吐けるからjavascriptに決まってんじゃん

458 :デフォルトの名無しさん:2013/11/29(金) 21:56:08.00
>>457
ブラウザゲームのほうがCで作ったアプリより早いという事になりませんか?

459 :デフォルトの名無しさん:2013/11/29(金) 22:15:41.70
>>445
そのデータファイル名を指定したいときに使う

460 :デフォルトの名無しさん:2013/11/29(金) 22:59:00.71
cのポインタについて誰か教えてください

461 :デフォルトの名無しさん:2013/11/29(金) 23:01:59.77
Cのポインタは二つの顔を持つ

462 :デフォルトの名無しさん:2013/11/29(金) 23:02:32.56
(**)

463 :デフォルトの名無しさん:2013/11/29(金) 23:03:14.47
ポインタは光速度どころか脱出速度にすら達することが出来ないので
ウルトラホーク2号があるんです

464 :デフォルトの名無しさん:2013/11/29(金) 23:04:18.89
( * )( * )

  x

  Y

465 :デフォルトの名無しさん:2013/11/29(金) 23:08:42.68
>>460
ネタじゃなくマジな質問なら、ポインタのどこがどうわからないのか

466 :465:2013/11/29(金) 23:11:26.19
すまん途中で送ってしまった…
>>460
ネタじゃなくマジな質問なら、ポインタのどこがどうわからないのか
自分なりの理解の範囲内でいいから具体的に質問すれば
だれか答えてくれると思うよ

467 :デフォルトの名無しさん:2013/11/29(金) 23:11:36.55
ありがとう

468 :デフォルトの名無しさん:2013/11/29(金) 23:13:37.97
えっとintの使用アドレス数?

469 :デフォルトの名無しさん:2013/11/29(金) 23:17:57.05
配列もわかりません。

int a[2][3];

aはint [3]を要素とするサイズが2の配列で合ってますか?

int b[2][3][4];
はどうなりますか?

470 :デフォルトの名無しさん:2013/11/29(金) 23:22:22.11
>>469
それの何がわからないんだ?

471 :デフォルトの名無しさん:2013/11/29(金) 23:27:58.09
>>470
bは〜であるといいたいのですが・・・

472 :デフォルトの名無しさん:2013/11/29(金) 23:37:14.54
>>471
コード書いた方が納得できるんじゃね
http://ideone.com/hw2K2I

473 :デフォルトの名無しさん:2013/11/29(金) 23:39:08.41
>>471
bはint [4]を要素とするサイズが3の配列を要素とするサイズが2の配列じゃん

これの何がわからないんだ?

474 :デフォルトの名無しさん:2013/11/29(金) 23:40:36.54
>>473

イミフ

475 :デフォルトの名無しさん:2013/11/29(金) 23:51:10.73
>>474
「どこの」意味がわからないのか書けよ
int [4]の意味くらいわかるだろ?じゃあどこからわからなくなったのか書け

476 :デフォルトの名無しさん:2013/11/30(土) 00:00:37.37
これで分かるかな。
int x[3] xは「intを要素とするサイズが3の配列」
int a[2][3] aは「intを要素とするサイズが3の配列」を要素とするサイズが2の配列

477 :デフォルトの名無しさん:2013/11/30(土) 00:03:56.20
>>476
わかりません。

478 :デフォルトの名無しさん:2013/11/30(土) 00:04:34.30
配列の配列

479 :デフォルトの名無しさん:2013/11/30(土) 00:07:09.15
多次元配列の話題は荒れる

480 :デフォルトの名無しさん:2013/11/30(土) 00:18:49.28
Cで荒れないのforだのwhileだの制御構造だけか

481 :デフォルトの名無しさん:2013/11/30(土) 00:30:43.23
>>476

はい、そこはまではなんとかわかります。

int a[2][3][4]とすると、
「int[3][4]を要素とするサイズが2の配列」 ?
となって、あれ?多次元配列ってCには無かったんじゃ???

となってしまいます。

482 :デフォルトの名無しさん:2013/11/30(土) 00:52:40.52
>>481
ポインタがわかってないだけだな
ポインタのこと勉強すればわかるようになる

483 :デフォルトの名無しさん:2013/11/30(土) 01:01:03.25
>>481
int a[2][3][4] = {
{ {0,1,2,3}, {4,5,6,7}, {8,9,10,11}, },
{ {0,1,2,3}, {4,5,6,7}, {8,9,10,11}, },
};

Cには多次元配列はないよ。配列の配列。

484 :デフォルトの名無しさん:2013/11/30(土) 01:02:26.01
>>481
Cに多次元配列はない。一次元のならびを多次元に見せてるだけ。

2*3*4=24、24個のintの大きさの箱のうち
一番小さい小パックが4つのかたまりの[4]
その4つ入りのパックを一つとする中パックが3つで[3][4]、
そしてさらにそれをひとつとする大パックが2つで[2][3][4]

485 :デフォルトの名無しさん:2013/11/30(土) 01:41:49.73
Cにはないというなら、何になら多次元配列ってあるんだ?

486 :デフォルトの名無しさん:2013/11/30(土) 02:11:42.55
C#

487 :デフォルトの名無しさん:2013/11/30(土) 02:22:47.69
int[, ,] array1 = new int[4, 2, 3];
とか

488 :デフォルトの名無しさん:2013/11/30(土) 02:24:56.72
>>487
何をしてるか、コンパイラに聞いてみな

489 :デフォルトの名無しさん:2013/11/30(土) 07:37:01.35
>>485
FORTRAN知らないキッシュイーターがでしゃばるな

490 :デフォルトの名無しさん:2013/11/30(土) 09:45:22.40
Cで書かれたlispは見かけるけど
lispで書かれたCってあるの?

491 :デフォルトの名無しさん:2013/11/30(土) 11:51:39.26
lispで書かれたCがほしけりゃ書けばいんじゃね?

492 :デフォルトの名無しさん:2013/11/30(土) 12:27:16.08
書いてみろよw

493 :デフォルトの名無しさん:2013/11/30(土) 12:51:22.61
実際の話、3次元配列って使うことある?

494 :デフォルトの名無しさん:2013/11/30(土) 12:53:07.81
今ポインタの勉強をしていてポインタを使った値の入れ替えのプログラムを作ってみたんですが

#include<stdio.h>

void swap(int,int);

int main(void)
{
int a,b;

scanf("%d%d",&amp;amp;a,&amp;amp;b);
printf("a=%d b=%d\n",a,b);
printf("値の入れ替え\n");

swap(a,b);

printf("a=%d b=%d\n",a,b);
printf("終了");

return 0;
}

495 :デフォルトの名無しさん:2013/11/30(土) 12:56:28.53
void swap(int *pa,int *pb)
{
int work;

work = *pa;
*pa = *pb;
*pb = work;

}

これで関数swapにエラーがあるようでコンパイルできません
なにが間違っているのでしょうか?

496 :デフォルトの名無しさん:2013/11/30(土) 13:01:45.65
>>494
2つ間違ってる

1. swapの引数にポインタではなく値を渡していること
2. "引数 ポインタ"でググって一番上にヒットするページに答えが書いてあるのに
  http://ohmoriws1.ms.kagu.tus.ac.jp/1997/sotsuken/miyakosi/a05.html
  その程度の検索もしない・できないこと

以上2点が間違ってる

497 :デフォルトの名無しさん:2013/11/30(土) 13:05:13.80
>>494
プロトタイプ宣言と
void swap(int,int);

実際の関数の引数が違うじゃねぇか
void swap(int *pa,int *pb){...}

498 :デフォルトの名無しさん:2013/11/30(土) 13:05:23.02
>>495
引数の型が違う

499 :デフォルトの名無しさん:2013/11/30(土) 13:08:40.23
>>498
こういうアスペレスが一番困る
「引数の型」って何だよ。何を指してるのかがわからん

500 :デフォルトの名無しさん:2013/11/30(土) 13:16:41.00
>>499
別に困らんだろ

俺的には>>497と同じ事を言ってると判断したぞ
仮にそうでなくても何に困ると

501 :デフォルトの名無しさん:2013/11/30(土) 13:19:40.44
>>498
"引数"の宣言がありません
"型"は__error のメンバではありません

502 :デフォルトの名無しさん:2013/11/30(土) 13:22:08.97
>>500
プロトタイプ宣言と引数の型が違うことはエラーの原因じゃないだろ

503 :デフォルトの名無しさん:2013/11/30(土) 13:26:24.30
>>499
侮辱するために疾病名を使う手合って、団塊には未だに多いよね。

504 :デフォルトの名無しさん:2013/11/30(土) 13:30:04.53
簡単な質問には大勢で答えがw
ちょっとこみいってるとレスなしw

void** (**((**p)[]))(void** (**[])(void** (**)()));

はどうなったんだ?

505 :デフォルトの名無しさん:2013/11/30(土) 13:30:44.67
すいませんでした・・・

皆さん有難うございます

506 :デフォルトの名無しさん:2013/11/30(土) 13:36:48.21
>>504
こんな可読性の悪い関数を書いた奴が悪い

507 :デフォルトの名無しさん:2013/11/30(土) 13:37:20.44
>>502
だから何に困るんだよ

508 :デフォルトの名無しさん:2013/11/30(土) 13:41:13.78
>>506
是非はともかくって書いてあんじゃん

509 :デフォルトの名無しさん:2013/11/30(土) 13:41:50.56
しかも、関数って・・・

510 :デフォルトの名無しさん:2013/11/30(土) 15:08:41.01
>>504
俺は、わからないから、説明して
(自分がわからないなら、質問形式で書き込みよろしく)

511 :デフォルトの名無しさん:2013/11/30(土) 15:12:09.82
>>504
その関数ポインタを使う必要性ってどんな場合なの?

512 :デフォルトの名無しさん:2013/11/30(土) 15:21:48.62
実用的でなくても必要性がなくても理解できなくちゃだめってことなんだよきっと

513 :デフォルトの名無しさん:2013/11/30(土) 15:22:36.88
>>511
>>504使ってコード書いてみなよ
出来ないんでしょ?

514 :デフォルトの名無しさん:2013/11/30(土) 15:24:47.04
Yes, YOU can!

515 :511:2013/11/30(土) 15:29:00.29
>>513
うん、できないよ
意味わかんねーもん

516 :デフォルトの名無しさん:2013/11/30(土) 15:30:30.75
>>454
そんなことはないと思う

四則演算はほとんどの人が理解していると言っていいだろ?
その応用である因数分解が出来なきゃ、四則演算を理解したことにはなりません、何て事にはならないよね?

517 :デフォルトの名無しさん:2013/11/30(土) 15:36:11.49
(**((**p)[])) は戻り値が void** で引数が (void** (**[])(void** (**)())) の関数
(**p)[] は戻り値が void** で引数が (void** (**[])(void** (**)())) の関数のポインタのポインタ
**p は戻り値が void** で引数が (void** (**[])(void** (**)())) の関数のポインタのポインタの配列
p は戻り値が void** で引数が (void** (**[])(void** (**)())) の関数のポインタのポインタの配列のポインタのポインタ
こんな感じで順番に解読していけるんだけど正直面倒くさい

518 :513:2013/11/30(土) 15:37:04.96
>>515
意味わからないってどういうこと?
基本的な関数ポインタの使われ方だと思うが…

519 :513:2013/11/30(土) 15:38:43.46
>>516
四則演算がわかってれば(1*2(4)(3)+3(4(4+3)))だって計算できるだろ
これを計算できないってのは因数分解関係ない

520 :513:2013/11/30(土) 15:40:30.65
誰も知らないような変な仕様を使ってるならともかく、ごく基本的な要素を組み合わせてるだけだから
基本的な言語仕様が理解できていれば時間かけりゃ初心者でも解読できる。

「解読できない」ってのは基本的な仕様が理解できていないということ

521 :デフォルトの名無しさん:2013/11/30(土) 15:42:50.62
>>504
そもそも、コンパイルできるのか?

俺もポインタが理解できていないと思われるので
コンパイルできるのかどうかすらわからん

522 :デフォルトの名無しさん:2013/11/30(土) 15:43:45.03
>>520
その通り

>>454
だから一分以内に解読出来ないからって、それは理解してないことにはならないから安心しろ

523 :デフォルトの名無しさん:2013/11/30(土) 15:46:25.62
>>519
結果を求めるのと解読するのでは、作業方向が違う
ポインタ解読に必要な能力は、因数分解系の能力であって、四則演算系の能力じゃない

524 :デフォルトの名無しさん:2013/11/30(土) 15:57:25.15
因数分解もそうだけど
100桁くらいの数が素数かどうか判断するとかでも
小学生にでも出来るはずなんだよな

525 :515:2013/11/30(土) 16:44:54.67
>>518
そりゃ、ゆっくり見ていけばわかるよ。
ただこれが基本的な関数ポインタの使い方って言われても
どういう時にこんな関数ポインタを使う必要性が
出てくるのかがわかんねーもん

526 : ◆QZaw55cn4c :2013/11/30(土) 17:08:11.71
必要になったら考えればいいことであって。

527 :デフォルトの名無しさん:2013/11/30(土) 18:28:40.46
情報と情報量の違いが分かりません
情報量は確率が絡むんですか?

528 :デフォルトの名無しさん:2013/11/30(土) 18:40:09.53
イタチすぎ

529 :デフォルトの名無しさん:2013/11/30(土) 18:40:43.88
ぽまいら〜〜〜

530 : ◆QZaw55cn4c :2013/11/30(土) 18:42:46.66
むしろ確率のみで定義されているようだよ

事象A 個別についての情報量は、確率の逆数がベースだ

事象A, 事象B, 事象C ... が含む確率空間全体での一種の期待値に似た概念で、その確率空間における平均情報量(エントロピー)というのもある
確率空間において事象Aが必ず発生する、といった場合は、平均情報量は 0 になる
起こるのがわかりきっているのであればそこから得られる情報は「ない」という価値観なんだね

531 :デフォルトの名無しさん:2013/11/30(土) 18:59:24.34
どういうときに情報量使うんですか?
例えば、「asdfasdagsdfa」このテキストデータは10バイトっていうのは
情報であって情報量じゃないんですか?

532 : ◆QZaw55cn4c :2013/11/30(土) 19:22:00.87
>>531
すぐに思いつくのは「データ圧縮」かな
なにか圧縮したことがあったら、圧縮率の高いデータって表現の上では「偏り」があるわけで、適切に表現をあらためるとより短い符号で
同じ内容の情報が伝達できるわけだよね、そのあたりを示すのが「情報量」

http://ideone.com/3toYuB
>「asdfasdagsdfa」このテキストデータは10バイト
実際にやってみると 「asdfasdagsdfa」のテキストデータの情報量は約2.2ビットだね

533 :デフォルトの名無しさん:2013/11/30(土) 19:52:04.66
聞きかじりのコンピュータサイエンスの知識を披露できてご満悦のQZ

534 :デフォルトの名無しさん:2013/11/30(土) 21:16:49.57
>>504
http://ideone.com/iMzeDU
使い方これで合ってる?

535 :デフォルトの名無しさん:2013/11/30(土) 21:30:19.88
関数ポインタの配列のポインタぐらいまでしか使わんだろ実際。
変態どもめw

536 :デフォルトの名無しさん:2013/11/30(土) 23:43:35.59
>>532
うーん、難しいです

537 :デフォルトの名無しさん:2013/11/30(土) 23:46:37.67
やっぱりポインタを理解できていない人って多いんですね
さすが、Cの最大の難所

538 :デフォルトの名無しさん:2013/11/30(土) 23:52:35.10
>>537
ポインタの概念は簡単だろう。
表記法が迷走しているだけで。

539 :デフォルトの名無しさん:2013/12/01(日) 00:16:27.12
ポインタで挫折してる人の大半は概念じゃないだろ
概念なんて馬鹿でもわかる

その表記法が理解できなくて挫折の原因となってるだろ

540 :デフォルトの名無しさん:2013/12/01(日) 00:17:05.57
配列も文字列も構造体も参照の受け渡しもみ〜んなポインタ
ポインタがないとな〜んにもできましぇ〜ん

これを簡単と言って済ませる奴の話を聞いても無駄無駄無駄

541 :デフォルトの名無しさん:2013/12/01(日) 00:47:56.78
演算子との順序とあいまって一見するとよくわからん。

(*++argv)[0], *++argv[0]

542 :デフォルトの名無しさん:2013/12/01(日) 00:52:53.88
>>541
演算子の優先順序表を見ろ

543 :デフォルトの名無しさん:2013/12/01(日) 01:40:28.46
この場合優先順位じゃなくて結合方向

544 :デフォルトの名無しさん:2013/12/01(日) 08:17:09.29
たまげたなぁ…

545 :デフォルトの名無しさん:2013/12/02(月) 00:06:50.76
一概には言えないと思うけど
四則演算の計算コストって
a+b a-b a*b a/b
の4つって比で表すとどのくらいになります?

546 :デフォルトの名無しさん:2013/12/02(月) 00:15:14.81
アセンブラ読め
gcc -S filenameでOK

547 :デフォルトの名無しさん:2013/12/02(月) 01:04:46.13
>>545
1:1:1:10

548 :デフォルトの名無しさん:2013/12/02(月) 01:05:43.56
うそんw そんなに違うか?

549 :デフォルトの名無しさん:2013/12/02(月) 06:37:07.78
a/b

pow(a,-1)
だとどう?

550 :デフォルトの名無しさん:2013/12/02(月) 06:39:06.01
違うものを比較されてもな

551 :デフォルトの名無しさん:2013/12/02(月) 06:41:20.42
ごめんまちがえた
a/b

a*pow(b,-1)
だとどう?

552 :デフォルトの名無しさん:2013/12/02(月) 07:03:47.00
なぜそんなことを知りたいのか?

553 :デフォルトの名無しさん:2013/12/02(月) 11:07:19.42
>>545
bが定数なら、1:1:1:1。

>>551
一般的にpow()のコストがかなり大きいので、比較にならないほど。
pow()の中身は対数と冪乗だからね。

554 :デフォルトの名無しさん:2013/12/02(月) 12:21:42.25
関数宣言前にvoid d_sort(int *)とあるのですがこれはつまりint型ポイント型のd_sortという変数があるということでいいのでしょうか?

555 :デフォルトの名無しさん:2013/12/02(月) 12:26:46.04
このスレにポインタを理解できてる人はいない(↑レスみれば歴然)
からポインタに関する質問は禁止にしようぜ

556 :デフォルトの名無しさん:2013/12/02(月) 12:27:29.65
int*を引き数とする、戻り値のない関数d_sortがある。

557 :デフォルトの名無しさん:2013/12/02(月) 12:28:21.15
寧ろ>555の日本語で文章を書く能力の乏しさに唖然とするよ。

558 :デフォルトの名無しさん:2013/12/02(月) 12:38:25.23
d_sortがあるとは言っていない。
あるはずだからそのつもりでコンパイルしろと言ってるだけ。

559 :デフォルトの名無しさん:2013/12/02(月) 13:24:11.10
つまりそれ自体が何か(を作る)の宣言ということではなく
ただそのような関数があるかもしれませんよということを指し示しているということでよろしいでしょうか?

560 :デフォルトの名無しさん:2013/12/02(月) 13:53:01.48
いや、「ある」という宣言だ。

561 :デフォルトの名無しさん:2013/12/02(月) 14:06:06.07
>>554が何を聞きたいのかがよくわからんのだが

562 :デフォルトの名無しさん:2013/12/02(月) 14:08:16.12
d_sort という識別子が出てきたら「引数はintのポインタを受け、戻り無しの関数」と解釈せよ

563 :デフォルトの名無しさん:2013/12/02(月) 14:48:07.42
無限ループかw

564 :デフォルトの名無しさん:2013/12/02(月) 15:19:27.47
>>554
void と書いてある意味をちゃんと読め
話はそれからだ

565 :デフォルトの名無しさん:2013/12/02(月) 15:27:50.23
>>554
C/C++では名前を参照する前に宣言がないとダメという古臭いルールが生き残っている
という前提知識が足りないのかもしれない

566 :デフォルトの名無しさん:2013/12/02(月) 17:54:41.54
C言語やC++をLinuxで勉強することにメリットはありますか?
Windowsと比較してどうなんでしょうか?

567 :デフォルトの名無しさん:2013/12/02(月) 18:03:49.37
C/C++のライブラリはほとんどLinux向けに作られており、ビルド用のスクリプト群がLinuxでしか動かない
そういったライブラリをWindowsで使うためには仮想環境のLinuxやCygwinなどのLinux環境を用意し、
その上でWindows用にクロスコンパイルする必要が生じる

だからLinuxで開発した方が面倒事に巻き込まれることがない

568 :デフォルトの名無しさん:2013/12/02(月) 18:28:59.44
>>566
CそのものがUNIX出身なので
UNIXライクな環境と親和性が高い

これはメリットであり同時にデメリットでもある
たとえば \n で改行が「常識」と強固に洗脳されることなど

569 :デフォルトの名無しさん:2013/12/02(月) 18:31:44.54
>>568
おまえ、アホなんだから黙ってればいいのに

570 :デフォルトの名無しさん:2013/12/02(月) 18:33:04.46
>>567
C言語やC++の勉強っていってんじゃん
ライブラリとどう関係があるんだよ

571 :デフォルトの名無しさん:2013/12/02(月) 18:33:16.64
>>569
アホだから黙るんなら、おまえが真っ先だろうが

572 :デフォルトの名無しさん:2013/12/02(月) 18:33:33.65
>>566
linuxのほうが敷居がひくいね。
WindowsでVisualStudioとか、簡単だからあんなのでおぼえるとろくなプログラマーにならないって
人がいるけど、実際は初心者はlinuxとかでコマンドラインでやるほうが簡単。
弊害でデバッガの使い方とかおぼえられないで、いつまでたってもprintf()デバッグをやってるとか
あるけど。

573 :デフォルトの名無しさん:2013/12/02(月) 18:36:44.16
>>572
printf()でデバッグできる規模のソフトしかつくったことないなら黙ってろ

574 :デフォルトの名無しさん:2013/12/02(月) 18:36:58.31
IDEは敷居が高いね。
きっと前世でIDEに申し訳ないことしちゃったんだと思う。
でも実用レベルに持っていく最短の道は、実績のあるIDEを使いこなせるようになることだよ。
IDEは優しいから許してくれるよ。

575 :デフォルトの名無しさん:2013/12/02(月) 18:38:49.10
>>571
だって、言ってることがアホ丸出しなんだもん、しょうがないじゃん

576 :デフォルトの名無しさん:2013/12/02(月) 18:40:23.79
>>575
アホでも黙らなくていいようだな、チャンピオンさん

577 :デフォルトの名無しさん:2013/12/02(月) 18:45:44.46
プログラムを学ぶならLinux(UNIX)Cが一番良いよ
Windows環境とかC++,Java見たいなのは
プログラムを覚えるってより言語仕様とか
ライブラリの使い方を覚えてるだけだからね
それはプログラムを学ぶのとはちょっと違う

578 :デフォルトの名無しさん:2013/12/02(月) 18:45:51.96
>>576
そっか、568 はネタで書いただけか?
わりぃわりぃ ヾ(゚д゚;)スマソ

579 :デフォルトの名無しさん:2013/12/02(月) 18:46:09.97
>>574
2chで初心者が質問してるのを見ると、デバッガで変数の中身を見ながら
ステップ実行すれば一発で分かるのにって思うことが多いから、無理してでも
IDEを使うほうがいいかもしれんけど、独学だとつらいんだよね。

スクリーンショットが満載の親切な入門書とか買えばいいかもしれんけど。

580 :デフォルトの名無しさん:2013/12/02(月) 18:50:36.43
>>579
確かにつらいよね。
VSのプロジェクトがmake相当だと聞いて、そこから一気に使えるようになった
覚えがある。
ただ、IDEの親切なデバッガはどうしても必要になるんだよなあ。

581 :デフォルトの名無しさん:2013/12/02(月) 18:51:18.05
>>577
CやC++から入るとプログラミングをおぼえるっていうより言語仕様の勉強をやってるって感じになって、難しいわりに実りない印象。

582 :デフォルトの名無しさん:2013/12/02(月) 18:56:14.95
意外と、高橋真奈著やさしいIDEが求められているのでは?

583 :デフォルトの名無しさん:2013/12/02(月) 18:58:48.24
>>578 のガチさに感服

584 :デフォルトの名無しさん:2013/12/02(月) 19:01:25.65
ちなみにWindowsではVS一択、LinuxではNetbeansがいいんじゃないかと思います。
Netbeansはインテリセンス相当の機能がちょっとおバカなのを除けば
ほとんどVSエクスプレスと同じことができる。
Linuxでということなら環境構築が必要ないという一点でNetbeansおすすめ。

585 :デフォルトの名無しさん:2013/12/02(月) 19:14:28.43
シェルスクリプト, make, コンパイラー、リンカー
コマンドラインデバッガーとかは一般常識だからなぁ
基本的なデータ構造やアルゴリズムを知らなくても
高レイヤー層の言語なら書けちゃうけど、やっぱり
基礎のない人は、問題が複雑化してくると手が止まっちゃう
ことが多いと思う
一生C#やJavaだけ触ってれば良いって言うのも一つの選択だし
その方が実入りが良い可能性も有るけどね

586 :デフォルトの名無しさん:2013/12/02(月) 19:18:40.88
結局ROM BASICが実入り最大だな

587 :デフォルトの名無しさん:2013/12/02(月) 19:28:11.99
>>585

なんとなく聞いたことある単語を並べてみましたw

588 :デフォルトの名無しさん:2013/12/02(月) 19:30:09.04
>>581
そうか?
言語仕様はすぐ覚えれるだろ?

589 :デフォルトの名無しさん:2013/12/02(月) 19:42:43.60
>>588
間違えた時に何が起きるかまで把握してなければ無価値

590 :デフォルトの名無しさん:2013/12/02(月) 19:45:38.28
>>587
わからないことは素直にわからないと聞いた方がいい

591 :デフォルトの名無しさん:2013/12/02(月) 19:53:43.71
煽れば何か落ちてくる時代は終わったしね

592 :デフォルトの名無しさん:2013/12/02(月) 20:06:25.12
>>585==>>587という素直な読み方。

593 :デフォルトの名無しさん:2013/12/02(月) 21:03:36.73
>>584
VC系の軽快な動作を求めるならcode-blocksだし
高機能がいいならEclipse一択だろう
なんでNetBeansなんだ

594 :デフォルトの名無しさん:2013/12/02(月) 21:06:57.47
>>584
VSは今月になるまでC99にすら対応してなかっただろ
IDEとして使うだけならいいけどコンパイラまでVSのものを使うのは最悪

595 :デフォルトの名無しさん:2013/12/02(月) 21:55:30.16
#include <stdio.h>
char *num2str(int i){
char str[30];
sprintf(str, "%d", i);
return str;
}

int main(void){
int a, b;
scanf("%d", &a);
scanf("%d", &b);
printf("%s %s¥n", num2str(a), num2str(b));
return 0;
}

これを修正してnum2strがa,bの数値の文字列を順に表示するプログラムにしたいんです
char str[30]をグローバルにするのは多分合ってると思うのですが
そうするとnum2str(b)がnum2str(a)と同じになってしまいます
どうすればいいでしょうか

596 :デフォルトの名無しさん:2013/12/02(月) 22:01:17.00
#include <stdio.h>
char *num2str(char *str, int i){
sprintf(str, "%d", i);
return str;
}

int main(void){
int a, b;
char sa[30], sb[30];
scanf("%d", &a);
scanf("%d", &b);
printf("%s %s\n", num2str(sa, a), num2str(sb, b));
return 0;
}

チェックしてないけどこれでいけるはず。

597 :デフォルトの名無しさん:2013/12/02(月) 23:29:54.22
古本屋でVisualC++6.0 実践プログラム技法という本を100円で買ってきました。
VS6.0を探してきてインストールしようと思います。

JVMをMSは扱えなくなったためMSDNにはVC6.0がありませんが、
亡くなった金子勇さんもC++6.0触ってたみたいだし興味があります。

今更ですがVC++6.0を1、2年かけて徹底的にやる価値はありますでしょうか。

598 :デフォルトの名無しさん:2013/12/02(月) 23:31:05.69
絶対的な価値はある。
相対的な価値はない。

599 :デフォルトの名無しさん:2013/12/02(月) 23:34:00.39
すみません、表題の説明をよく読んだらC言語のスレでした。
ご迷惑をおかけしました。上記内容はボツにしてください。

OMIT.

600 :デフォルトの名無しさん:2013/12/02(月) 23:34:57.62
>>598
高速スレありがとうございます。
参考にさせていただきます。

601 :デフォルトの名無しさん:2013/12/02(月) 23:48:26.96
>>600
どんな技術でも学んだ意味がゼロってことはない。やればやったなりの価値はある、
ただし最新のVSで最新の技術を学ぶことに比べると得られる価値は非常に少ない。

つまり最新の環境でやれ。

602 :デフォルトの名無しさん:2013/12/03(火) 00:21:12.00
>>597
やめとけマジで
ネット上の適当なブログ見ながら
VCExpressで作ってたほうがまだ価値がある

603 :デフォルトの名無しさん:2013/12/03(火) 00:27:08.81
VC6は一つ一つの機能がシャキシャキ動いて快適ではあるんだけどなw
下手をすると最新のSDKすら使えるかどうか

604 :デフォルトの名無しさん:2013/12/03(火) 00:38:10.12
>>603
VC6でまともに使えるSDKは2003febまでだったような

605 :デフォルトの名無しさん:2013/12/03(火) 00:46:30.91
2008が最強だな
2010以降はもっさり感が酷い

606 :デフォルトの名無しさん:2013/12/03(火) 03:40:36.82
>>593
環境構築が必要ないからって書いてあるじゃないの。

607 :デフォルトの名無しさん:2013/12/03(火) 05:14:43.48
>>606
そこに上がってるのはどれも特に必要ないだろ。

608 :デフォルトの名無しさん:2013/12/03(火) 06:06:56.43
>>607
VS相当まで持っていくには拾い食い必須だし、手間かかりすぎ。
環境構築で精根尽き果てて、そこで終わる。
そして信者化。
しかも使いやすくもないし。
わざわざ劣ったものを苦労して使う必要は無い。
Emacsの時代から、環境構築のプロ!あれ?最初と目的違ってね?って人が
いくらでもいました。

609 :デフォルトの名無しさん:2013/12/03(火) 06:09:36.37
>>595;
>return str;
寿命が尽きる変数への参照を返してはいけません

>char str[30]をグローバルにするのは多分合ってると思うのですが
「わからないからとりあえずグローバル」にするのはやめましょう。せめて「何故グローバルだとうまくいくのか(いってないけど)」を考えましょう

>そうするとnum2str(b)がnum2str(a)と同じになってしまいます
printf("%s %s¥n", num2str(a), num2str(b));
において、printfはnum2strの二回の呼び出しの後に評価されます
num2strの評価順は処理系依存(今回はnum2str(b)が先)ですが、二回の呼び出しが終了した後にprintfされるから、
二回目に書きかえられた値が2つ出力されるのは当然の結果です

596が答えを書いてくれてるけど、C言語の記憶域期間とポインタ、文字列の扱いについて勉強しなおしたほうがいい

610 :デフォルトの名無しさん:2013/12/03(火) 07:09:19.80
>>608 それ本末転倒じゃねw

611 :デフォルトの名無しさん:2013/12/03(火) 07:37:23.66
>>597
製品開発の現場ではまだまだ現役だったりするから、まあ価値はあると思うよ。
現役というか、当時のVC++6.0で開発した過去の製品を新しい環境に移行させるのに、
金というか工数とかの問題が有るからってことだけどね。
>>599
VC++6.0でもC言語開発出来るし。というか、うちもそうだし。

612 :デフォルトの名無しさん:2013/12/03(火) 07:55:45.22
>>606
そういう意味では
Emacsって劣ってたよね

613 :デフォルトの名無しさん:2013/12/03(火) 10:25:44.74
目的と手段を取り違える愚かな奴がいるというだけ

614 :デフォルトの名無しさん:2013/12/03(火) 10:39:56.74
スキルの低い人がが
「道具は使うもんだ。使われるもんじゃない(キリ」
みたいなことを言ってると、この人の場合は使わないんじゃなくて使えないって
だけなのに、それがバレてないと思ってるんだってかわいそうになるな。

615 :デフォルトの名無しさん:2013/12/03(火) 12:04:31.63
よくある誤解
IDEまで含めてCだと思ってしまう
コンパイルって何?を中級者まで引きずる

616 :デフォルトの名無しさん:2013/12/03(火) 12:49:43.55
使っているツールを見てどういう実装かをイメージする習慣がなければ永久に中級者未満

617 :デフォルトの名無しさん:2013/12/03(火) 12:50:55.37
実装なんてイメージしてもストレス溜まるだけ
知らぬが仏

618 :デフォルトの名無しさん:2013/12/03(火) 15:34:03.54
>>608
それでなんでわざわざNetBeans?
どちらにしろEclipse CDTと同じぐらいの設定は必要なんだが。
だったら軽快なCodeBlocks使えと。

619 :デフォルトの名無しさん:2013/12/03(火) 18:26:28.59
おまいら、意外と?馬鹿なんだな(笑)

620 :デフォルトの名無しさん:2013/12/03(火) 18:50:34.13
と馬鹿が申しております

621 :デフォルトの名無しさん:2013/12/03(火) 18:58:01.62
>>620
癇に障った?

622 :デフォルトの名無しさん:2013/12/03(火) 19:01:35.86
CPUの命令をC言語のソースコード単位にしたらコンピュータの処理は早くなると
思いますが、これを実現したらどういった問題がありますか?

623 :デフォルトの名無しさん:2013/12/03(火) 19:07:20.70
>>622
やたらと大きくなって値段が高くなる

624 :デフォルトの名無しさん:2013/12/03(火) 19:10:00.71
>>622
馬鹿も休み休み言え。
ソースコードをまるごとCPU命令にするって、どんだけ命令の種類が必要になるのか分かってんのか?
仮に代入一つとっても構造体のサイズごとにCPU命令を用意するってどんな罰ゲームだよ。
つーか、それ以前にメモリアクセスが変わらなきゃちっとも速くならねぇ。

625 :デフォルトの名無しさん:2013/12/03(火) 19:11:56.12
いまでも大体ソースコードと対応してるだろ

626 :デフォルトの名無しさん:2013/12/03(火) 19:18:13.28
そもそも >>622 が何を言ってるのかわからん
もっと具体的に

627 :デフォルトの名無しさん:2013/12/03(火) 19:31:01.27
>>626
1行ごとにCPUにフェッチする


累算レジスタ内部
1 include stdio.h
2 int main (void)
3 {
4 printf hello world !! () ;
5 }
6 return 0;

628 :デフォルトの名無しさん:2013/12/03(火) 19:56:35.80
ちょっと違うけど、
インテルとかのCISC系も複雑なことを1つの命令でやるという思想、だったね。
ただCPUの高速化という点で、RISC系の命令をシンプルにするというのが今の主流だよね。
インテルも今では、内部的にRISC命令に変換して処理してるんだっけ?

629 :デフォルトの名無しさん:2013/12/03(火) 20:20:27.87
ソースコード=1命令ってつまり1翻訳単位=1命令ってことだよな。10万行のコードが1命令とか胸熱…

とおもったら>>627
とりあえず
・1文が複数行に分けて書かれてていた場合
・逆に全文が1行に納められていた場合
にどうすればいいと考えているのか教えてほしいな

630 :デフォルトの名無しさん:2013/12/03(火) 20:24:44.15
>>629
コンパイラ作ってみれば分かる

631 :デフォルトの名無しさん:2013/12/03(火) 21:56:40.72
俺には
>a=4;b=5;c=6;d=7;
は1CPU命令 、
>a=4;
>b=
>5;c=
>6;d=7
>;
は5CPU命令からなるコードに変換し、
なおかつ両者を完全に等価なプログラムへとコンパイル出来るコンパイラを作れる自信は無い

632 :デフォルトの名無しさん:2013/12/03(火) 22:44:20.89
>>629
そんな質問してる奴がコンパイラをつくれるわけねーじゃん

633 :デフォルトの名無しさん:2013/12/03(火) 22:50:31.79
コンパイ・セグンドなら

634 :デフォルトの名無しさん:2013/12/03(火) 23:03:39.32
>>628
複雑とシンプルに明確な線引きがあるのがRISC、ないのがCISCさ
RISCは「シンプルだから」速いわけではない
そんならCISCもシンプルにすれば同じように速くなるはずだが
この単純計算はまったく成り立たない

635 :デフォルトの名無しさん:2013/12/03(火) 23:08:21.07
RISC.vs.CISCの議論なんて世間だと前世紀で終わってるのにいまだに蒸し返してる2ch

636 :デフォルトの名無しさん:2013/12/03(火) 23:14:41.67
>>634
> そんならCISCもシンプルにすれば同じように速くなるはずだが

なるよ。
そんなことができれば... ね。

637 :デフォルトの名無しさん:2013/12/03(火) 23:15:51.68
やかましわい、根本的に何が違って、今どう折り合いつけとんのか知らんやつが
何が世間で何世紀じゃい

638 :デフォルトの名無しさん:2013/12/03(火) 23:19:25.31
>>636
そんなことができればって、
add や mov のように RISC とまんま同じ内容の命令でも同じ速度は出ないよ

今の普通の PC で実測するとμOPの速度を測ってしまい、
RISC vs CISC にはならないけどね

639 :デフォルトの名無しさん:2013/12/04(水) 00:26:41.58
>>638
CISC と RISC でまんま同じ命令で比較?
ひょっとして、バカ?

640 :165:2013/12/04(水) 19:27:42.16
明解C言語入門編が終わったんだけど
次はポインタ完全制覇とかでいいんかな

641 :デフォルトの名無しさん:2013/12/04(水) 22:03:01.70
昔のPC-UNIXってメモリ2Mとか4Mで動いてたじゃん
CPUにgccくらい搭載できるんじゃないの?

642 :デフォルトの名無しさん:2013/12/04(水) 22:09:05.57
>>641
可能ではあっても意味は無い
金が有り余って困ってるなら億円かけて作れば?

643 :デフォルトの名無しさん:2013/12/04(水) 22:19:09.67
>>641
スワップ無しで?

644 : ◆QZaw55cn4c :2013/12/04(水) 22:23:29.83
>>642
同じ金をかけるのなら、V30 に Z80 を載っけてくれよ〜

645 :デフォルトの名無しさん:2013/12/04(水) 22:29:48.62
昔、Zaurusにgccを乗せてたよ
主メモリは64MB、gccのバージョンは2.95.1だった

646 :デフォルトの名無しさん:2013/12/04(水) 22:35:24.86
gcc見たいな屑コンパイラなんてそんなもんだろ

647 :デフォルトの名無しさん:2013/12/04(水) 23:00:38.42
もっといいもの作ってくれよ

648 :デフォルトの名無しさん:2013/12/04(水) 23:34:38.60
>>640
入門書1冊終わったなら作りたいもの作っとけ
それ以上の知識はマニアックだから必要に迫られないとなかなか覚えられないし、使いどころも難しい。実践しながら困ったときに随時勉強すればいい

649 :デフォルトの名無しさん:2013/12/04(水) 23:50:57.17
>>648
VMwareみたいなものが作りたいです。

650 :デフォルトの名無しさん:2013/12/05(木) 00:11:05.44
C言語より、アーキテクチャとOSのお勉強からだな

651 :デフォルトの名無しさん:2013/12/05(木) 00:42:37.90
>>649
アセンブラ・・・つーか機械語
リング0より下のいわば−1なところ

652 :デフォルトの名無しさん:2013/12/05(木) 01:26:09.27
>>650
OSを作るわけではありません
OSを動かす土壌を作りたいだけですけど?

653 :デフォルトの名無しさん:2013/12/05(木) 01:29:37.15
仮想デバイス作るのは心が折れそうだけど頑張れ

654 :デフォルトの名無しさん:2013/12/05(木) 01:30:31.94
VMwareみたいなものは、そういうのを作ってる会社へ入るか
オープンソースであるか探れよ。
ゼロから作るのは無謀。

655 :デフォルトの名無しさん:2013/12/05(木) 01:37:48.33
手始めにファミコンのエミュレータを作るのがよろし

656 :デフォルトの名無しさん:2013/12/05(木) 01:41:39.31
FreeDOSもLinuxも動く、JavaScriptで作られた x86エミュレータがスゴイ件
2013 年 10 月 18 日
http://www.softantenna.com/wp/software/x86-emulator/

657 :デフォルトの名無しさん:2013/12/05(木) 01:45:22.81
俺もcはじめるがみんなどんな風にcを学んだか教えてくれ

658 :デフォルトの名無しさん:2013/12/05(木) 02:04:39.23
K&R読んだ

659 :デフォルトの名無しさん:2013/12/05(木) 03:00:26.18
取っ掛かりじゃなくて、上達の原動力のことか?

俺の場合、大学で自作シミュレータの画像表示をカッコ良くキレイにして
女の子にチヤホヤされるのがC上達の原動力となった。

そして今はプログラムとはほぼ無縁の仕事だ

660 :デフォルトの名無しさん:2013/12/05(木) 03:02:06.43
三田何とかって人が書いたC言語入門ってやつがおやじの部屋に転がってたのでそれ読んでやってた
クソ古いので全くおすすめできない

661 :デフォルトの名無しさん:2013/12/05(木) 06:52:34.71
>>652
OSの仕組みを知らなくて、その土壌は作れないよ。
あと、C言語以前にアセンブラとかCPUの仕組みとかの知識も必要。
それから、その仮想環境で動かすOS用にデバイスドライバの作成も必要。

662 :デフォルトの名無しさん:2013/12/05(木) 08:34:36.29
>>640
これ読め
http://www.amazon.co.jp/dp/4877832394/
http://www.amazon.co.jp/dp/4798022543/
http://www.amazon.co.jp/dp/4839919844/

663 :デフォルトの名無しさん:2013/12/05(木) 09:17:10.94
>>660
読むとポインタが分からなくなるという評判の悪書だね

664 : ◆QZaw55cn4c :2013/12/05(木) 12:33:24.23
そのfjからきく噂、実際に確かめたいものだが

665 :デフォルトの名無しさん:2013/12/05(木) 13:50:54.59
お前fj知ってるジジイなのに、なんでそんな底辺スキルなんだ?

666 :デフォルトの名無しさん:2013/12/05(木) 14:04:20.44
チョンだからだろ

667 :デフォルトの名無しさん:2013/12/05(木) 14:08:36.93
三田何某の本で勉強したけど中身忘れたな。
ソースコードにある単語のクロスリファレンスを作成するサンプルが載ってたのはおぼえてる。

668 : ◆QZaw55cn4c :2013/12/05(木) 18:43:34.54
>>665
キチガイだからでしょう普通

669 :デフォルトの名無しさん:2013/12/05(木) 18:52:06.40
ジジイ、ジジイか
それじゃあお前は何だ、このガキが
俺はお前さんがこの世に落っこってくる前からバグ作ってんだ

670 :デフォルトの名無しさん:2013/12/05(木) 20:03:34.46
autoみたいな確信犯とかね

671 :デフォルトの名無しさん:2013/12/05(木) 23:50:31.88
ところでおまいら、
https://paiza.jp/poh/ec-campaign
はちゃんとやってるだろうな。
俺はCのテストケース3で0.01秒達成したぞ。

672 :デフォルトの名無しさん:2013/12/06(金) 00:00:35.03
>>671
C++ が意外と多いんだね

673 :デフォルトの名無しさん:2013/12/06(金) 00:32:42.65
>>671
なんでトリップ外してんだ
お題スレでスルーされたからってここに書くなよ
あとな、ナップザック問題にグリーディ法で対応するのは初心者だぞ

674 :671:2013/12/06(金) 00:35:18.33
qzじゃねえっつうの

675 :デフォルトの名無しさん:2013/12/06(金) 03:10:04.43
黒いモノを白く見せる世界

676 :デフォルトの名無しさん:2013/12/06(金) 03:14:40.61
javascriptって、この市場からハブられるんだ

677 :デフォルトの名無しさん:2013/12/06(金) 03:32:54.62
>>671
これって、ナップザック問題だっけ?整数計画問題だっけ?

678 :デフォルトの名無しさん:2013/12/06(金) 03:40:55.44
>>676
JSはベタに書いても速いので、アルゴリズムを競うのには不向き。
この程度の問題では計測できないくらい高速。
最適化が掛からない劣った言語のほうが向いているのです。

679 :デフォルトの名無しさん:2013/12/06(金) 04:17:47.78
どう考えたって大人の事情だろ

680 :デフォルトの名無しさん:2013/12/06(金) 04:39:10.91
JSONパーサーをライブラリから呼び出すなら最初からjsで書いた方がはやいし、
xmlよりjsonの方がデータ転送量が少ない。javaってjavascriptに殺されるのか?

681 :671:2013/12/06(金) 06:15:40.76
>>677
そんな高尚な問題じゃないよ。
ド下手でもn^2、中級でnlogn、ちょっと考えればnのオーダー。

682 :デフォルトの名無しさん:2013/12/06(金) 06:40:27.78
JavaScriptがないのは、
標準入出力だけで判定っていうのが作りにくかっただけじゃないかな
どう考えてもCより遅いんだし、最大テストケースならそれなりに時間はかかるだろ。

683 :デフォルトの名無しさん:2013/12/06(金) 12:40:59.56
>>681
case3 で 0,01 とはすごいねえ、俺のhttp://toro.2ch.net/test/read.cgi/tech/1357191974/304 では、1.5秒といったところ

684 :デフォルトの名無しさん:2013/12/06(金) 17:17:22.11
>>683
なんでソースコード出してんの?
頭おかしいの?
日本語読めないの?

685 : ◆QZaw55cn4c :2013/12/06(金) 18:05:30.00
>>684
https://paiza.jp/poh/ec-campaign#detail
回答をブログ等に書いていただいても問題ありません。

686 :デフォルトの名無しさん:2013/12/06(金) 18:58:43.27
char s[10];

char s[0]=3;

length(s)=1なのは何故ですか?

何故0じゃないの?

687 :デフォルトの名無しさん:2013/12/06(金) 19:01:28.95
char s[0]=0;

length(s)==0

688 :デフォルトの名無しさん:2013/12/06(金) 19:09:01.18
>>682
JSはCの二倍速い。

689 :デフォルトの名無しさん:2013/12/06(金) 19:26:46.78
>>688ソース

690 :デフォルトの名無しさん:2013/12/06(金) 20:27:17.70
誰が、どう見ても、perl.python,rubyは明らかにトレンドを過ぎただろ
既にstrutsのような臭いを放っている

691 :デフォルトの名無しさん:2013/12/06(金) 21:43:37.32
>>686
lengthって何だよ?
Javaならメソッドにしなきゃならんし、
C/C++にlengthなんていう標準関数はない。

692 :デフォルトの名無しさん:2013/12/06(金) 22:34:36.03
そもそもここはCスレだ。

693 :デフォルトの名無しさん:2013/12/06(金) 23:28:03.75
間違えた
lengthじゃなくて
steirlenです。

int a[10]=a[0]=3;
strlen(a[10])==1なのは何故?

694 :デフォルトの名無しさん:2013/12/06(金) 23:34:15.35
#defineなどで自分でbool型を作った場合


//--------------------
#define bool int
#define false (0)
#define true (1)

void func(int sex, int suki_na_sex)
{
bool is_okama = (bool)((sex == MALE) && (suki_na_sex == MALE));

}
//--------------------

何度も使う条件文を1度別の変数に格納して見やすくしたいのですが
このようなキャストみたいな書き方はナンセンスでしょうか??

695 :デフォルトの名無しさん:2013/12/06(金) 23:35:38.63
a[10]なんて番地は存在しない
int a[10];
a[0]..a[9]までしか存在しない

696 :デフォルトの名無しさん:2013/12/06(金) 23:41:18.50
boolなんて作らなくて良いから-1でも返しとけ
cの標準ライブラリぐらい全部嫁。ソースから嫁。
嫌なら、この板に来るな。人生の無駄

697 :デフォルトの名無しさん:2013/12/07(土) 00:01:59.43
#define pred(A,B) (bool)((A) == MALE && (B)==MALE)

698 :デフォルトの名無しさん:2013/12/07(土) 00:12:46.24
普段、cのコードを書くことはなくっても、BSDのコードぐらい眺めるよね?

699 :デフォルトの名無しさん:2013/12/07(土) 00:15:51.87
>>659
ライフラインや略奪者として取り組む方が上達するよ

700 :デフォルトの名無しさん:2013/12/07(土) 00:21:58.58
その同じ条件式が何度も出てくるコードの骨格(if for whileブロックの連なりを)示してみ?

701 :デフォルトの名無しさん:2013/12/07(土) 01:40:39.11
c言語でファイルに書き込んだ構造体のデータを検索して
見つけたデータだけを読み込むにはどうすればいいですか?

検索してもよくわからず。。。

702 :デフォルトの名無しさん:2013/12/07(土) 01:51:44.07
エスパーすると、
構造体データがいくつもファイルに書いてあって、
その中から特定の条件に合うデータだけ探して、
みつかったらそれを読み込みたい、
とこういうことか?

どんなデータがファイルのどこに書いてあるかがわからないなら、
先頭からデータを全部読み込んでチェックするしかないよ。
データの場所を探すのに使う特別なデータ(インデックス)を
あらかじめ用意する必要がある。

703 :デフォルトの名無しさん:2013/12/07(土) 02:06:47.09
>>694
強いて書くとすれば

enum Bool_ { FALSE, TRUE };
typedef enum Bool_ Bool;

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

704 :デフォルトの名無しさん:2013/12/07(土) 07:28:07.56
>>693
たぶKava勉強した後にC言語勉強し始めたばっかりだと思うが
strlen関数は文字列の長さを帰す関数で
配列の長さを測る関数ではない。


#include <string.h>
char str[]="abc";
int len=0;

len=strlen(str);

結果のlen3

705 :デフォルトの名無しさん:2013/12/07(土) 08:35:19.74
>>701
ISAMとか

706 :デフォルトの名無しさん:2013/12/07(土) 14:08:50.66
Cはよくハードウェアを直接操作できるからOSやドライバを作成するのに
向いているなんて聞きますけど、
それらを作成できるまで到達してる人ってどの程度の割合ですか?

大抵の人はできる?
それとも
大抵の人はできない?

707 :デフォルトの名無しさん:2013/12/07(土) 14:22:09.55
アルゴリズム自体は難しくない
ハードウェアの仕様書理解したり、仕様書の入手の方が難問だったりする
エラーがあるとOS巻き込んでクラッシュするので、IDE無ければプログラム作れない奴には無理

708 :デフォルトの名無しさん:2013/12/07(土) 14:45:18.24
で?
あなたはOSなんて作れるの?
作れるなら晒してみ

709 :デフォルトの名無しさん:2013/12/07(土) 14:46:41.64
OSが一般的じゃなかったころにOS造ってたわ

710 :デフォルトの名無しさん:2013/12/07(土) 15:19:35.44
デバドラなら仕事で書いてるよ。そんなの全然珍しくないだろ。
お前にとっては雲の上の存在なのか?

711 :デフォルトの名無しさん:2013/12/07(土) 15:45:52.94
>>711
逆だろ
OSやドライバ書いている人なんてもっとも低級だろw

712 :デフォルトの名無しさん:2013/12/07(土) 15:46:49.17
>>710
そりゃそうでしょ?
仕事以外にCなんて何に使うんですか?

713 :デフォルトの名無しさん:2013/12/07(土) 16:23:10.33
みんなスゴイな
俺は、プログラミング言語としてC言語から勉強し始めたけど
デバイスドライバとか全然作れない
って言うか、パソコンのハードに関しては全然知識が無いしな

714 :デフォルトの名無しさん:2013/12/07(土) 17:05:55.66
>>710
作法をおぼえるだけならさほどでもないが
英文ドキュメントの山と格闘するのはご免だ

715 :デフォルトの名無しさん:2013/12/07(土) 17:06:07.54
>>713
PCのハードは激ムズだよ

PCじゃないハードから始めた方がいい
C初心者に優しい環境もばっちり出そろっているし
PCと通信なら割かし敷居が低い
ただし母艦にいきなり繋いで煙ふいたりは気をつけたほうがいいが

716 :デフォルトの名無しさん:2013/12/07(土) 17:17:14.44
Hello, blue screen.

717 :デフォルトの名無しさん:2013/12/07(土) 18:25:08.42
っうぇうぇうぇ

718 :デフォルトの名無しさん:2013/12/07(土) 18:26:09.04
wwewe

719 :デフォルトの名無しさん:2013/12/07(土) 21:49:57.97
>>695
> a[10]なんて番地は存在しない

番地は存在するでしょ。

720 :デフォルトの名無しさん:2013/12/07(土) 23:01:42.08
>>713
Raspberry Piとか秋月とか

721 :デフォルトの名無しさん:2013/12/07(土) 23:01:56.67
int a[10];

値 a[0]、 a + 0 という番地。

じゃないの?

722 :デフォルトの名無しさん:2013/12/07(土) 23:02:45.64
>>712
趣味

723 :デフォルトの名無しさん:2013/12/07(土) 23:04:05.70
>>719
メモリ領域が確保されてないなら良いのか?

724 :デフォルトの名無しさん:2013/12/07(土) 23:10:10.05
a[10]という番地は存在するしないの話なら存在するで終わる話

725 :デフォルトの名無しさん:2013/12/07(土) 23:14:07.07
>>722
趣味がC
ヲタ
キタ━━━━━━(゚∀゚)━━━━━━ !!

726 :デフォルトの名無しさん:2013/12/07(土) 23:22:12.05
俺は中学生の頃からC/C++を使っていたが、中学生の俺が仕事に就いてたはずはないから、少なくとも仕事でなかったことは確実

727 :713:2013/12/08(日) 08:24:45.74
>>715
一応、電気回路(弱電)の知識は、ある程度ありますが
やっぱり、オシロスコープや測定器やROM焼くやつ
とか必要ですか?
オシロスコープは高いので、お金が無いです……

728 :デフォルトの名無しさん:2013/12/08(日) 08:55:26.20
>>723
そう。

もう少し正確に言うと、メモリ領域が確保されていることか保証されない。

729 :デフォルトの名無しさん:2013/12/08(日) 11:41:02.22
>>727
Arduinoとかやれば

730 :デフォルトの名無しさん:2013/12/08(日) 13:18:10.66
ポインタの指す先はメモリとは限らないわけだか
知らないなら黙ってりゃ良いのに

731 :デフォルトの名無しさん:2013/12/08(日) 13:21:29.14
まさかI/Oとか言いたいのか?

732 :デフォルトの名無しさん:2013/12/08(日) 14:43:02.59
>>727
\4700のオシロがあるよ
http://akizukidenshi.com/catalog/g/gK-04279/
1メガ×1現象だけどw

弱電やってたんならテスターや半田ごては持ってるんだよね?
ROMライタは内蔵か付属が多くて別途買うことはあんまりないよ

733 :デフォルトの名無しさん:2013/12/08(日) 19:45:01.99
ポインタが指す先は型付のアドレスじゃないのか

734 :デフォルトの名無しさん:2013/12/08(日) 20:24:13.76
>>730
メモリマップドIO だったとして、それはCPUからみてメモリアクセスとは違う作法なのか?
メモリマップドIO のアクセス手順が通常とは異なったとして、それをCPUが意識しているのか?
アクセス作法の違いは周辺回路でなんとかするのでは?

735 :デフォルトの名無しさん:2013/12/08(日) 20:34:01.40
アクセスタイミングとか考えるとメモリとは違った扱いが求められる

736 :デフォルトの名無しさん:2013/12/08(日) 21:13:36.97
ああ

737 :デフォルトの名無しさん:2013/12/08(日) 21:53:52.58
C言語ではRead/Writeするかベクタテーブルからコールされるだけだよ
意識することはない

738 :デフォルトの名無しさん:2013/12/08(日) 22:17:34.96
gotoでプログラム部分を挟むんですが遠すぎるとエラーがでます
何故ですか?

goto label;

〜プログラム部分〜

label:

739 :デフォルトの名無しさん:2013/12/08(日) 22:36:51.13
一言で言うと、jump 命令には制限があるから。

理解するためには、c言語だけではなく、
assemblerの知識も必要になる。

検索するなら、「アセンブラ ショートジャンプ」などを使うと良い。

ここがお勧め
http://software.aufheben.info/kouza/beginner/kouza_asm.html

gotoのomake
http://www.nurs.or.jp/~sug/soft/super/goto.htm

一言で言うと、ggrks。

740 :デフォルトの名無しさん:2013/12/08(日) 22:40:29.10
>>739
ライブラリが間にあるとエラーになるようです…
cの関数が間にあるだけじゃ通ったから

741 :デフォルトの名無しさん:2013/12/08(日) 22:44:52.85
どういうエラーになるのでしょう?
またコンパイラは何でしょう?

ジャンプ時にオペランドに入りきらない部分を
他のレジスタで補完するような仕組みだとしたら、
コンパイラが何とかしてくれると思いますが;

742 :デフォルトの名無しさん:2013/12/08(日) 23:11:35.49
isprintのマルチバイト文字列バージョンって何?

743 :デフォルトの名無しさん:2013/12/08(日) 23:18:52.23
ロケールをUTF-8に設定するのはどうやるの?

744 :デフォルトの名無しさん:2013/12/08(日) 23:23:21.15
>>738
> 遠すぎるとエラーがでます
>>740
> ライブラリが間にあるとエラーになるようです

言ってることが変わっちゃってるけど、
まあ置いといて、>>741の二つの質問に答えてよ。

>>738,740みたいになるのは、
libraryの呼び出しが原因だとしても、
「ライブラリが間にある」事自体が問題なのではなく、
「ライブラリが間にある」事によって、
c言語でgotoと書いている場所からlabel部分の間、
assemblerでのjump場所から着地点の間、
その間に数命令の増加があるため、
jump命令の制限に達してしまうため。

というのが最初に考えた回答。

まずは>>741の二つの質問に答えてよ。

745 :デフォルトの名無しさん:2013/12/08(日) 23:28:29.58
×その間に数命令の増加があるため、
○その間に数命令増加してしまい、

746 :デフォルトの名無しさん:2013/12/08(日) 23:51:24.86
およそ何バイトくらいがgotoの最大飛行距離ですか?

747 :デフォルトの名無しさん:2013/12/08(日) 23:58:50.86
cpuによる

まずは>>741の二つの質問に答えてよ。

748 :デフォルトの名無しさん:2013/12/09(月) 00:02:54.08
分岐命令のレンジが問題になるのはおかしい
コンパイラを窓から投げ捨てるかバグレポ送ってやれ

749 :デフォルトの名無しさん:2013/12/09(月) 00:19:39.45
ライブラリがインライン展開されていない限り
そんな命令数になるとは思えませんが。
そもそもそんなコンパイラはないでしょうが;
(あったとしたらエラーすらはかないんじゃないでしょうか)

「遠すぎるとエラーがでます」と遠いとエラーと勝手に決めつけていますが、
ライブラリ単体では実験されましたか?
gotoがない場合は試されましたか?
その関数というのはライブラリと等価の処理をするのですか?

何にせよ、ソースコードとは言いませんから
エラーの詳細と環境について情報を示して頂かないと
有意義な回答は得られないでしょう……。

750 :デフォルトの名無しさん:2013/12/09(月) 03:09:51.11
グローバル変数の使い方の説明を見るとどこかのファイルで一回のみ定義して
他のファイルでははextern宣言するとなってるんですけど
具体的にどういうファイルでグローバル変数の定義したらいいのか目安とかあるんですかね?

751 : ◆QZaw55cn4c :2013/12/09(月) 06:24:41.80
>>750
特に目安はないが、そもそもグローバル変数の更新をかけるところで定義するのがいいかと
別解として「extern は要らない子!」=extern キーワードはまったく使わない

752 :デフォルトの名無しさん:2013/12/09(月) 08:31:29.71
>>750
企業プロジェクトだと、グローバル変数は全て登録制でglobals.cに記述しないといけなかったり。
登録制なので、自由に設定できないし型も変更できない。

別の方針としては、プログラムのエントリポイントはmain()なのでmain()の含まれるソースで定義する。
これも他のソースの担当者が勝手に定義することを避けられるし、有意な値で初期化することもできる。

753 :デフォルトの名無しさん:2013/12/09(月) 09:22:05.59
>>750
グローバル変数にwriteアクセスするモジュールは一つだけにする
定義はそのモジュールで行う

モジュールが複数のファイルから構成される場合はいろいろ流儀があるが
初期化ルーチン >> writeアクセスルーチン の順位でそれを定義しているファイルで定義する
あるいは定義だけをまとめたファイルを作成しても良い


爆笑ログ externは要らない子
http://www54.atwiki.jp/qzaw55cn4c/pages/16.html

754 :デフォルトの名無しさん:2013/12/09(月) 11:02:38.14
>>750
予備知識:
・グローバル変数は便利すぎるので頼りすぎて自分の首を絞めるリスクが高い
対策:
・自分でルールを決めてそれに従う

いちばんかんたんなルール:
・globals.h, globals.c の一箇所にまとめる
globals.h に extern宣言を並べて
使う先で #include "globals.h"

ちょっぴりステップアップ:
・構造体にまとめる
typedef struct {
int var1;
int var2;
} Data;

extern Data globalData;

さらにステップアップ:
※グローバル変数を出来る限り使わない※

755 :デフォルトの名無しさん:2013/12/09(月) 11:09:39.77
構造体にする意味がわからない

756 :デフォルトの名無しさん:2013/12/09(月) 11:26:26.42
名前空間

757 :デフォルトの名無しさん:2013/12/09(月) 11:41:44.34
C++やC#のnamespaceの代用で使ってるつもりなら用途が違う。

758 :デフォルトの名無しさん:2013/12/09(月) 12:03:22.67
globalを多用している古いプログラムを矯正する時に使われる手法
>>754はそれを聞きかじって誤った理解をしたものと思われる

759 :デフォルトの名無しさん:2013/12/09(月) 15:06:54.14
専門用語の説明求める相手にさらに高度な専門用語バリバリで読ませる気を全く感じさせないオナニーレスは問題ないの?

760 :デフォルトの名無しさん:2013/12/09(月) 15:22:08.55
高度な専門用語(笑)

761 :デフォルトの名無しさん:2013/12/09(月) 15:26:12.15
便所の落書きに何を期待してんだか

762 :デフォルトの名無しさん:2013/12/09(月) 15:34:00.27
というか意味が分からないんだけど。
どれが高度な専門用語を使ったオナニーレスで、なんでソレに文句を言ってるのか。

>>759>>750で、>>754の説明の意味が分からなくてムカついてるとか?

763 :デフォルトの名無しさん:2013/12/09(月) 18:03:48.44
グローバル変数を他から参照するならexternは必要
以上

764 :デフォルトの名無しさん:2013/12/09(月) 18:16:18.93
>>762
なるほど
その見方をすれば辻褄が合うな

765 :デフォルトの名無しさん:2013/12/09(月) 18:19:13.66
>>750>>754 の懇切丁寧な説明を読んで満足して国に帰ったって手紙が来たぞ

766 :デフォルトの名無しさん:2013/12/09(月) 19:15:58.69
>>734
全然違う
知らないバカは黙ってろよ

767 :デフォルトの名無しさん:2013/12/09(月) 19:43:13.92
スーザンボイルさんアスペを告白
http://news.mynavi.jp/news/2013/12/09/347/

768 :デフォルトの名無しさん:2013/12/09(月) 19:58:35.92
>>751
>>752
>>753
>>754

回答ありがとうございました
ちなみに>>750からは書き込んでないので>>759は自分じゃないです

769 :デフォルトの名無しさん:2013/12/09(月) 20:45:08.26
社員管理プログラムを作ろうとしているのですが
ヘッダーファイルと構造化の使い方がまったくわからないから教えてください

自分で調べてみたけどサイトによって説明が違っていてわからないです

770 :デフォルトの名無しさん:2013/12/09(月) 20:59:41.44
社員データをまとめて管理するために構造体を定義する。
構造体配列を宣言する。
社員データをファイルから読み込んで構造体配列に格納する。
構造体配列を操作してファイルに書き込む。

771 :デフォルトの名無しさん:2013/12/09(月) 21:11:24.22
//SHAIN構造体
typedef struct {
char namae[256];//名前
int nenrei;//年齢
} SHAIN;

これでSHAIN data[64];と記述すれば、64人分の社員データを格納する構造体配列が使えるようになる。

772 :デフォルトの名無しさん:2013/12/09(月) 21:17:06.68
>>770>>771
そういうふうに作るんですか
ありがとうございます

ヘッダファイルって普通は使わないものなんですか?

773 :デフォルトの名無しさん:2013/12/09(月) 21:31:15.93
小さいプログラムなら1ファイルで終わるので、だいだい自分でヘッダーを用意しなくてもできる。
ヘッダーは#includeで取り込むことができる。複数のコンパイル単位で型や関数の宣言部分などを共通化するときに使う。
詳しくは「分割コンパイル」を検索。

774 :デフォルトの名無しさん:2013/12/09(月) 22:11:29.59
>>772
http://ideone.com/b0AFw7

775 :デフォルトの名無しさん:2013/12/09(月) 22:42:59.56
>>766
ポインタのさす先が「ない」場合がある、とか言いたかったの?

776 :デフォルトの名無しさん:2013/12/09(月) 23:15:03.26
>>775
お前がポインタを理解していない初心者だという事は明らかだから、無理して回答しようとするな

777 :デフォルトの名無しさん:2013/12/09(月) 23:19:59.75
同じだよ
アドレスを直接叩くだけ

778 :デフォルトの名無しさん:2013/12/10(火) 00:59:21.89
規格だと、ポインタは「変数への間接参照が可能な"何か"」
一般的にはアドレスが使われてるけど、アドレスじゃない他の"何か"を使っても問題ない
アドレス以外を用いた実装は恥ずかしながら見たこと無いけど

779 :デフォルトの名無しさん:2013/12/10(火) 01:00:36.05
>>776
ふーん
で、ポインタの指す先はメモリとは限らないとして、それはいったい何?

780 :デフォルトの名無しさん:2013/12/10(火) 01:06:07.74
>>778
C++ のイテレータのようなからくりであってもいいのか、規格の段階では抽象的な表現なんだね
>>776 は具体的に何かは想定せずに抽象的な表現を求めていただけ?なんだかつまんないね

781 :デフォルトの名無しさん:2013/12/10(火) 01:07:18.22
>>766,776
あちゃー

782 :デフォルトの名無しさん:2013/12/10(火) 01:52:10.43
>>779
初心者必死 ぷぷぷ
引っ込んで炉

783 :デフォルトの名無しさん:2013/12/10(火) 02:10:52.95
現在C言語において配列で表現されている行列を
構造体で表現するプログラムを組んでいます。

配列のほうは正常にプログラムが動作しております。
構造体のほうではおそらくどこかに計算ミスや表現の仕方が間違っている部分があり、
配列と同じような動作ができません…
すごく初歩的なミスかもしれないので指摘してくださると助かります。

リンクが張れないためideoneに以下のアドレスを入力お願いいたします。
ideone.com/5R1ve3

なおcheck[][]という二次元行列がプログラム中にあるのですがこの中には
1か0しか数字が入りません。

784 :デフォルトの名無しさん:2013/12/10(火) 02:30:03.98
このプログラムは配列や構造体を使って何をしたいのか、それぞれの関数はどんな挙動をするのかを教えてくれ。そうじゃなきゃ何が正しいのか分からん
とりあえず、check[][]が1のときalpha_k,beta_kに0を代入しているのが気になった

785 :デフォルトの名無しさん:2013/12/10(火) 02:49:02.37
>>783
GSLの行列ライブラリの実装ぐらい眺めて出直して来い

786 :デフォルトの名無しさん:2013/12/10(火) 02:53:25.12
>>784
返信ありがとうございます!

このプログラムは他の処理と作用してやっと結果が出るプログラムなため
それをすべて載せるとかなりの量になるため何をしているかのとこだけリンクを
はりたいと思います。
申し訳ありませんがリンクを張れないため
このideoneのサイトにコメントとして記載されているpdfファイルを開いてみてください
ideone.com/UAFNeD
ここの34ページ目からの処理を行っております。

787 :デフォルトの名無しさん:2013/12/10(火) 02:56:01.52
>>785
変死ありがとうござます!
GSLを使った実装もやって見たいと思います!

788 :デフォルトの名無しさん:2013/12/10(火) 02:56:18.43
struct Matrix{ int row, column; double** imp;};
Matrix *matrix_constructor(int row, int col){
double **imp;
//
return imp;
}
Matrix *alpha, *beta, *result;

789 :デフォルトの名無しさん:2013/12/10(火) 03:00:42.51
>>787
×変死
○返信
です。すみません…

790 :デフォルトの名無しさん:2013/12/10(火) 03:02:25.92
これって大学の演習とか卒業研究?

791 :デフォルトの名無しさん:2013/12/10(火) 03:04:13.76
>>790
はい。
C言語の実験演習です。

792 :デフォルトの名無しさん:2013/12/10(火) 03:05:00.05
ごめんいろんな意味で俺の手に負えなそう
ループカウンタをグローバル変数にしてるからメモリ消費を抑えたいのかと思えば構造体配列長が固定だったり、
小難しそうなことやってる割にはやたら読みにくいプログラムだったり…

「function関数は行列をあーして、ナントカ行列を生成する関数です」とか、そういう具体的な説明はできんのかね

793 :デフォルトの名無しさん:2013/12/10(火) 03:09:26.56
>>792
いえいえ検討してくださっただけうれしいです!
友人からも読みにくいプログラムだと匙を投げられましたw

もう少しコードの整理と勉強してから出直してきます。
わざわざお時間を取らせてしまい申し訳なありません。

794 :デフォルトの名無しさん:2013/12/10(火) 03:10:25.05
>>791
うちの大学も酷かったけど、とりあえず指導教官に死ねって言っといて

795 :デフォルトの名無しさん:2013/12/10(火) 03:23:07.39
とりあえず、copy関数というからにはこれでいい気がするんだが
void copy(int code_len,int check_cc){
sum_k = 0;
for(j=0;j<check_cc;j++){
for(i=0;i<code_len;i++){
alpha_k[sum_k].num = check[j][i];
alpha_k[sum_k].gyou = j;
alpha_k[sum_k].retu = i;
beta_k[sum_k].num = check[j][i];
beta_k[sum_k].gyou = j;
beta_k[sum_k].retu = i;
sum_k++;
}
}
}
copy関数はcheckの内容をalpha_k[],beta[]にコピーするんだろ?
alpha_k[].numは帯域変数だからオール0で初期化されるので、
以下にもcopy関数寄り後に呼ばれそうなupdate_alpha関数内の
>alpha_k[i].num=alpha_front*alpha_back;
以外で0以外に書き変わらない(他に操作するところが無ければ)
敢えてcheck[][]が1のときにだけalpha[].num,beta[].numに0を代入しなければならない理由と、
check[][]が1のときにだけ行と列を設定しなければならない理由があるなら改めて説明してくれ

796 :795:2013/12/10(火) 03:26:07.23
誤字ひどすぎワロタ…
_kが抜けてるところとか、変換ミスがあるところは補完して読んでくれちょ

797 :デフォルトの名無しさん:2013/12/10(火) 03:34:01.93
ラムダはmathライブラリに名前食われてるからでしょ

798 :デフォルトの名無しさん:2013/12/10(火) 03:51:28.41
>>795
alpha_k[].numに関しては後から更新されるためどんな値を入れてもいいと思ったので
とりあえず0としていました。alpha_k[].numとbrta_k[].numは正確にはcheck[][]と
同じ値ではなくcheck[][]で1が立っているところに何か数字が入るという意味です。
またupdate_alphaやupdate_betaはループの中で交互にでてくるのでお互いに値をどんどん更新することになります。
check[][]が1の時に書き換える理由は多分checkの中で1の数が非常に少ないからだと考えられます。

言葉足らずですみません。
わざわざ詳しい部分まで読んでくださり。本当に助かります。

799 :デフォルトの名無しさん:2013/12/10(火) 04:04:25.05
sign=sign+ramda[i]; -> sign+=ramda[i]
if(sign>=0) decode[i]=0; else if(sign<0) decode[i]=1; -> decode = sign >= 0 ? 0 : 1;
check[j][i] == 1 // check は int?
s/gyou/row/g
s/retu/column/g
実際に必要な処理が分からなくても、何故か書き直したくなる

800 :デフォルトの名無しさん:2013/12/10(火) 04:50:53.32
>>798
なるほど。それならやっぱり795で書いた形に修正すればなんかしら改善すると思われ
元のソースコードだと、全要素が0で初期化されたalpha_k[].num,beta_k[].numに0を代入するという形になってた。つまりゼロ行列からゼロ行列を作ってただけ
今回提示されなかった部分でalpha_k[].num,beta_k[]numがいじられていなければ、という前提だけれども

>check[][]が1の時に書き換える理由は多分checkの中で1の数が非常に少ないからだと考えられます。
処理を短くするのは大切なことだが、君の書いたプログラムを使う場合、最低でもalpha_k[]とbeta,k[]のgyo,retuに値を代入してあげないと、
>if(alpha_k[j].retu == beta_k[i].retu && alpha_k[j].gyou != beta_k[i].gyou)
この条件分岐で誤作動を起こすと思う。copy関数でgyoとretuを代入されなかった要素のgyoとretuは全て0になってるから

801 :デフォルトの名無しさん:2013/12/10(火) 05:05:45.61
>>800
解決いたしました!!
本当に感謝してもしきれません!!

今回の件でまだまだC言語に関して勉強不足だということを実感いたしました。
本当に夜分遅くまでありがとうございました!!

802 :デフォルトの名無しさん:2013/12/10(火) 05:29:36.55
c言語じゃなくて算数レベルのロジックがオカシイ

803 :デフォルトの名無しさん:2013/12/10(火) 05:47:59.54
指導教官が世間知らずで、どうしようもないかもしれないけれど、
高校生でも、専門学校生でも、もっとマシなコードを書くぞ

804 :デフォルトの名無しさん:2013/12/10(火) 09:37:19.24
>>803
コードで示せよ。

805 :デフォルトの名無しさん:2013/12/10(火) 10:28:09.35
論理的に破綻しているので書けません

806 :デフォルトの名無しさん:2013/12/10(火) 10:58:41.73
.txtに12とか数字があってその数字を読み込んで、読み込んだその数字の配列を作成するプログラムって作れますか?

807 :デフォルトの名無しさん:2013/12/10(火) 11:03:50.11
C言語でプログラミングをしていて、その際100個ほどデータファイルが
必要になって通し番号付けたいんだけどどうしたらいいですか?
100個ドラッグ選択して
data1〜data100という名前を付けたいです。
元々の名前はバラバラです。

808 :デフォルトの名無しさん:2013/12/10(火) 11:07:25.07
>>806
作れます。

「読み込んだその数字の配列」ってのが何だかわからんから、
期待したのと違うことになるかもしれんが。

809 :デフォルトの名無しさん:2013/12/10(火) 11:09:39.79
>>807
シェルスクリプトでも書けばいいんじゃね?
その知識がないなら、100個くらい手でチマチマやった方が早い

810 :デフォルトの名無しさん:2013/12/10(火) 11:15:03.48
>>806
// 例えばこんなファイルなら
// --
// 12
// 24
// --
// こんな感じで。
#include <stdio.h>
int main() {
FILE * fp = fopen("the.txt", "r");
char buf[1000]; // 行辺りバイト数
int array[10000]; // 最大行数
int cnt = 0;
while (fgets(buf, sizeof(buf), fp) != NULL) {
array[cnt++] = atoi(buf); // arrayに順番に要素を入れる。
}
fclose(fp);
return 0;
}

811 :デフォルトの名無しさん:2013/12/10(火) 11:17:29.09
>>809
windowsのファイル操作の機能でありませんか?
絶対あると思うのですが、案外ないですかね
本当に困るんですよデータファイルが多すぎて

812 :デフォルトの名無しさん:2013/12/10(火) 11:17:56.61
>>807
// それこそ、このスレ的にはプログラムで作ればいい。
#include <stdio.h>
int main()
{
for (int ic = 0; ic < 100; ++ic) {
char fileName[1000]; // 長さに注意
sprintf(fileName, "baseName.%d", ic);
FILE * fp = fopen(fileName, "w");
fclose(fp);
}
return 0;
}

813 :デフォルトの名無しさん:2013/12/10(火) 11:21:15.99
>>812
それいいかもしれないですね
ただ、ファイル名だけテキストに抽出する方法ってwindowsにありますか?
sprintfはそれが条件ではないですか?

814 :デフォルトの名無しさん:2013/12/10(火) 11:26:37.47
>>812
ファイル作るだけかよ

815 :デフォルトの名無しさん:2013/12/10(火) 11:29:31.29
たかが100個、ここで聞いてる間に、1個6秒で変換すれば10分で終わってたのに。

それとも100個が嘘で、実は10000個あるっていうなら、
ファイル名のリストを作って、
それを使って名前を変更していくプログラムかスクリプトを作ればいい。

816 :デフォルトの名無しさん:2013/12/10(火) 11:29:32.89
>>811
API使えばできるよ

817 :デフォルトの名無しさん:2013/12/10(火) 11:29:59.64
C:\test\
にあるファイル

abc
def
ghi
jkl
mnn
opq
rst


popという名前にして通し番号を付けるという事ができたら満足です


pop1
pop2
pop3
.
.

818 :デフォルトの名無しさん:2013/12/10(火) 11:35:50.01
釣り乙

819 :デフォルトの名無しさん:2013/12/10(火) 12:35:18.83
>>818
釣りじゃないです
ファイル名を順番にテキストファイルに書き下ろす方法が分かりません
もちろん手動じゃないですよ、プログラムの中でです
スクリプトじゃなくてプログラムで作りたいのでどうやればいいのか…
これができたら>>812の方法で大丈夫だと思うのですが

820 :デフォルトの名無しさん:2013/12/10(火) 12:37:37.83
>>819
文字列操作はC言語が最も苦手とすることだから特に理由がないなら別の言語使え

821 :デフォルトの名無しさん:2013/12/10(火) 12:38:37.07
プログラムにこだわる理由
シェルみたいな即時性はないけど柔軟性があるので…
シェルではいじれないAPIもCからいじれるのでプログラムが良いです

822 :デフォルトの名無しさん:2013/12/10(火) 12:39:54.33
>>821
●Win32API(C言語)編 第54章 ファイルを列挙する
http://www.geocities.jp/ky_webid/win32c/054.html

823 :デフォルトの名無しさん:2013/12/10(火) 12:40:40.20
>>819
1.フォルダを新しく作る
2.対象ファイルを、1.のフォルダにコピーまたは移動する。
3.1.のフォルダ内で、連番プログラムを実行する。

824 :デフォルトの名無しさん:2013/12/10(火) 12:41:28.08
>>820
ディレクトリからファイル名を順番に読み込むのってC言語では無理なんですか?
ということは端末からシェルでファイル名の一覧を表示して、それをテキストファイルに
コピーすればいいんですかね、シェルでもできそうですね

825 :デフォルトの名無しさん:2013/12/10(火) 12:43:33.52
>>822
うわーややこしいし、難しい…
シェルでやります…

826 :デフォルトの名無しさん:2013/12/10(火) 12:48:19.61
君が求めているのは魔法と呼ばれる未知の技術ではないのか
柔軟性とやらを発現するためにどのくらいマジックポイントを消費するのか

827 :デフォルトの名無しさん:2013/12/10(火) 13:01:59.04
lsとmvのソースを読めばいいだけじゃね?

828 :デフォルトの名無しさん:2013/12/10(火) 13:09:37.45
>>827
絶対無理ですね、ソースとか絶対読めないです

>>826
なんでC言語やシェルっていうのはユーザーに分かりやすい文法なのに
APIやVSの関数マクロみたいにOSの機能を呼び出すものは複雑で分かりにくい
んでしょうか?細かい部分をいじれるんだから分かりやすい文法とか引数
にしてほしいですよね、説明読んでも中々理解できないし

829 :デフォルトの名無しさん:2013/12/10(火) 13:27:25.48
>>817
Explorerで複数ファイル選択してからリネームすると
(2), (3), …と付くけど、それでいいのでは

830 :デフォルトの名無しさん:2013/12/10(火) 13:32:26.41
>>828
高機能になるほど、複雑化するのは当たり前
それをユーザフレンドリーにすること自体がC使いの仕事

831 :デフォルトの名無しさん:2013/12/10(火) 13:47:21.53
>>828
Windowsよくわからないマンだから誤解とかあるかもしれないけど,とりあえず.CってのはUnixをいろんなマシンに移植しやすくするために作られた言語なんだ.POSIXもなかった頃だからUnixに限定してもOSの機能とか固まってないし言語の機能に組み込めないでしょ.
因みにPOSIXのシステムコールを見る限り簡素で手間は多いが複雑ではないと思う.

832 :デフォルトの名無しさん:2013/12/10(火) 13:58:59.40
>>830
サイトが殆ど充実してないんですよね
理解できる日本人はいないんじゃないかって思うくらい

>>831
なるほど移植言語だからできるだけ簡素に作られてるんですね

833 :デフォルトの名無しさん:2013/12/10(火) 14:51:15.52
簡素過ぎて、ディレクトリの概念さえない。

834 :デフォルトの名無しさん:2013/12/10(火) 15:28:42.18
>>828
perlだと

#!/usr/bin/perl
$dir = "C:\\work\\tmp";
opendir DIR, $dir or die;
$count = 1;
while (readdir DIR) {
next if /^\.+/;
$cmd = sprintf("rename %s\\%s %03d", $dir, $_, $count++);
print $cmd."\n";
system $cmd;
}
closedir DIR;

835 :デフォルトの名無しさん:2013/12/10(火) 16:05:58.12
バカには無理

836 :デフォルトの名無しさん:2013/12/10(火) 16:10:31.09
cmd.exe に dir コマンド実行してもらえばいいw

837 :デフォルトの名無しさん:2013/12/10(火) 17:13:36.15
すみません、初心者なのですが、gdbにてデバッガを行ったところ、
[New Thread 4678]
Missing separate debuginfo for
Try: yum --disablerepo='*' --enablerepo='*-debug*' install /usr/lib/debug/.build-id/81/a81be2e44c93640adedb62adc93a47f4a09dd1
のようなものが出てきました
これは何なのでしょうか?
ググっても出てこなかったのですが
素直に、表示されている通り、yumすればいいのでしょうか?
しかし、あまり良く分からないものをyumして入れるのもどうなのかと思いまして
アドバイスいただけたらと思います

838 :デフォルトの名無しさん:2013/12/10(火) 17:49:00.41
>>832
だからニーズを感じるならおまえが作ればいい
只でばらまくのか、儲かる仕組みを考えるかは、自分次第

既出の著作に対する鋭いアンチテーゼこそ名著への道

839 :デフォルトの名無しさん:2013/12/10(火) 17:50:56.71
/usr/lib/debugについて調べたら?

840 :デフォルトの名無しさん:2013/12/10(火) 17:54:36.79
>>837
通常インストールされているアプリはデバッグ情報が省略されていて、
そのままだとgdbでデバッグできない。
デバッグに必要なソースやシンボル情報を入れたパッケージだから、
デバッグしたいなら入れるしかない。
いらなくなれば消せばいい。

841 :デフォルトの名無しさん:2013/12/10(火) 17:56:18.80
エスパーすると、gccのコンパイルオブションで-gを入れてない

842 :デフォルトの名無しさん:2013/12/10(火) 18:05:03.62
>>839 >>841
エスパー力が足りてない

843 :デフォルトの名無しさん:2013/12/10(火) 18:08:14.45
パーカパーカ

844 :デフォルトの名無しさん:2013/12/10(火) 18:11:19.12
>>842
817からの流れだと、学生が宿題プログラムを片付けるのgdb使おうとしたら、
コンパイラオプション入れ忘れたって感じじゃん

845 :デフォルトの名無しさん:2013/12/10(火) 18:18:12.72
素面で言ってるのか

846 :デフォルトの名無しさん:2013/12/10(火) 18:24:09.85
なんか規制されてて書き込めませんでした

>>841
?あ、いえ、gcc -gはしています
?gcc+gdbによるプログラムのデバッグ 第3回 gdbの便利な機能、デバッグの例
?(自分は直リン禁止されているようですのでタイトル書きます)
?というページを参考にして、
?$ gcc -g -O0 treesort1.c
?$ ./a.out
?$ gdb a.out core.4678としたさいに出てきました

847 :デフォルトの名無しさん:2013/12/10(火) 18:25:02.30
>>845
工学部出たなら、余程のボンクラでもない限りgdbぐらい使うだろ

848 :デフォルトの名無しさん:2013/12/10(火) 18:27:01.41
>>840
そのパッケージは上記の際のみ利用されるものなのでしょうか?
それとも、(まずありえないと思いますが)他の機会でも同じものが利用できるのでインストールしていたほうがいいと言うことなのでしょうか?

>>839
今から調べてみます

849 :デフォルトの名無しさん:2013/12/10(火) 18:29:52.48
こういうのは大体、使ってるディストリのフォーラムに解決策が書いてある
英語最優先

850 :デフォルトの名無しさん:2013/12/10(火) 19:01:53.36
>>848
他のデバッグの際に同じものが利用できる。

851 :デフォルトの名無しさん:2013/12/10(火) 19:26:10.03
>>850
そうなのですか?
そうであれば開発用の機器には入れておいた方が後々何か役に立つかもしれませんね
ありがとうございます

852 :デフォルトの名無しさん:2013/12/10(火) 22:53:19.74
平衡二分木のおすすめライブラリってありませんか?

853 :デフォルトの名無しさん:2013/12/10(火) 23:31:00.95
>>852
その程度自前で書いても大した工数にはならんだろ

854 :デフォルトの名無しさん:2013/12/11(水) 00:02:44.42
ttp : //cottonia-cotton.cocolog-nifty.com/backyard/2011/05/post-f195.html

こんなのとか
C++で書いた方が何かと楽だけどC言語での書き方も知っておいて損はないな

855 :デフォルトの名無しさん:2013/12/11(水) 01:59:41.32
ポアソン分布の累積分布関数を計算するにはどうしますか?
λ^i / i! の計算がバーストします

856 :デフォルトの名無しさん:2013/12/11(水) 05:40:14.97
つ 任意精度演算

857 :デフォルトの名無しさん:2013/12/11(水) 08:28:33.48
(λ/1)*(λ/2)*(λ/3)*(λ/4)*...

858 :デフォルトの名無しさん:2013/12/11(水) 11:15:51.15
TwitterのクライアントソフトはC言語のみで作成可能ですか?

859 :デフォルトの名無しさん:2013/12/11(水) 11:41:49.30
可能だけど、そんな質問をするキミには作成不可能

860 :デフォルトの名無しさん:2013/12/11(水) 12:07:15.28
>>859
ありがと?

861 :デフォルトの名無しさん:2013/12/11(水) 12:52:46.51
いえいえ

862 :デフォルトの名無しさん:2013/12/11(水) 13:41:37.67
Twitterのクライアントソフトがどんな機能を持っているべきか日本語のみで説明できますか?

863 :デフォルトの名無しさん:2013/12/11(水) 14:56:12.18
C言語で1人でゲーム制作をできるようになるにはどのくらい時間がかかりますか?

864 :デフォルトの名無しさん:2013/12/11(水) 14:58:55.53
マルバツゲームとか、RPGとかレースとかで違う

865 :デフォルトの名無しさん:2013/12/11(水) 15:01:58.62
誰もが一度は作りたいと思ったことがあるようなSRPGを作りたいんですけどね

866 :デフォルトの名無しさん:2013/12/11(水) 15:07:41.59
漏れは一度も作りたいと思ったことは無いから
「誰もが」というのは間違ってる

867 :デフォルトの名無しさん:2013/12/11(水) 15:12:36.78
確かにそうですね

868 :デフォルトの名無しさん:2013/12/11(水) 15:21:09.64


SRPGツクール

869 :デフォルトの名無しさん:2013/12/11(水) 15:32:49.19
それは考えましたが、自分で作りたいと思いまして

870 :デフォルトの名無しさん:2013/12/11(水) 18:24:23.03
文法とアルゴリズム、データ構造、スレッド、オブジェクト指向、デザインパターン、リファクタリング、
回帰テスト、バージョン管理を理解して、多分、3〜5年ぐらいでver0.01ぐらい作れるんじゃね?

871 :デフォルトの名無しさん:2013/12/11(水) 18:32:34.02
ゲーム制作の分厚い本を読みつつ、OSSのゲームエンジン2、3から設計を真似れば?
古い版と新しい版を見比べれば、どこで設計を失敗したかも分かるんじゃね?

872 :デフォルトの名無しさん:2013/12/11(水) 18:37:41.13
ttp://content.gpwiki.org/index.php/Main_Page

873 :デフォルトの名無しさん:2013/12/11(水) 18:53:09.63
>>870
そんなにかかるの?
買ったほうが安くね?

874 :デフォルトの名無しさん:2013/12/11(水) 20:03:35.81
ものの試しに海外シュミレーションゲームのコミッタとコントリビュータの数を見てみろ

875 :デフォルトの名無しさん:2013/12/11(水) 20:21:35.28
てすと

876 :デフォルトの名無しさん:2013/12/11(水) 20:43:39.77
>>873
> 買ったほうが安くね?

当たり前

877 :デフォルトの名無しさん:2013/12/11(水) 20:56:08.74
よりによってSRPGとなると、マトモにゲームらしいものにもっていくまでには
この辺にいる奴らでもかなり脱落するというw

878 :デフォルトの名無しさん:2013/12/11(水) 21:12:07.38
コアになるアルゴリズムだけなら趣味で扱うのに手頃な規模かもしれんけど、
いわゆるゲームデザインってやつがとんでもなく開発リソース食うからな。
素人はスタートレックくらいにしとけと。
http //ja.wikipedia.org/wiki/%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%83%AC%E3%83%83%E3%82%AF_%28%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3%E3%82%B2%E3%83%BC%E3%83%A0%29

879 :デフォルトの名無しさん:2013/12/11(水) 22:06:59.20
>>863
ゲームを作る=面白いと思う人を得る
アホみたいに早くこともあれば、絶望的に長くかかることもある

とりあえず人つったけど、最近は猫だったりもする
心をつかむのはプログラミング以上に難しいぞ

880 :デフォルトの名無しさん:2013/12/11(水) 22:20:18.79
プログラミング入門なら将棋なりチェスなりのボードゲーム作る方が適当

881 :デフォルトの名無しさん:2013/12/11(水) 22:39:46.44
SRPGを作りたいと決心して書店にある本を買って勉強する前に知っておくべき基本的なことはありますか?

いきなり本読んで勉強し始めてもC言語は理解できるものですか?

882 :デフォルトの名無しさん:2013/12/11(水) 22:42:52.41
決心は簡単に揺らぐということ
成果が得られないまま持続するというのは難しいということ

883 :デフォルトの名無しさん:2013/12/11(水) 22:49:39.45
SRPGに限らずゲーム作りで重要なのはシナリオはもちろんキャラクタデザイン等のデザイン部分とゲーム内の効果音やBGMとかその他もろもろ
それらを全部一からオリジナルで作りこむ必要がある。
プログラムなんかできてもほとんど関係ないよ

884 :デフォルトの名無しさん:2013/12/11(水) 22:54:11.23
ワープロの使い方覚えたら小説書けますかってレベルだな

885 :デフォルトの名無しさん:2013/12/11(水) 22:54:31.71
>>881
プログラムを書けるようになっても
まだそれは道のりの5%くらいに過ぎない

ということを知っておくべき

886 :デフォルトの名無しさん:2013/12/11(水) 23:27:17.27
>>881
お目当ての本があるなら細かいことを考えないで買えばいいよ。
理解できなかったら、その部分を自分で調べたらそれが勉強になるし。

887 :デフォルトの名無しさん:2013/12/11(水) 23:37:29.50
C言語に関する本を一冊読み終えてもまだゲーム作りはできないレベルですか?

他にもまだ読まなければいけない本はありますか?

888 :デフォルトの名無しさん:2013/12/11(水) 23:52:09.71
勇者になりたいと決心しました。
魔王の倒し方という本はどこに売ってますか?

889 :デフォルトの名無しさん:2013/12/12(木) 00:04:36.86
どんなゲーム作りたいかってビジョンがあれば、とりあえず始めりゃいい
壁にぶち当たったらネットでも本でも見ればいい

890 :デフォルトの名無しさん:2013/12/12(木) 00:07:37.84
ゲーム作りが本当の目的なら、Cは選ばない方がいい。
WindowsがターゲットならC#
AndroidがターゲットならJava
iPhoneがターゲットならObj-C
がおすすめ。

891 :デフォルトの名無しさん:2013/12/12(木) 00:11:17.88
>>887
Cの入門書だけじゃゲームは作れないね。
昔のBASICの入門書だとブロック崩しのコードとか乗ってたけど、Cの入門書はゲームの解説とかしてるのは少ないと思う。

あとCの入門書は苦しん覚えるCとかwebで探せば買わなくていいかも。

892 :デフォルトの名無しさん:2013/12/12(木) 00:11:31.90
C言語を唱えると思い描いた通りのゲームが出来上がるんです

893 :デフォルトの名無しさん:2013/12/12(木) 00:14:05.04
>>881
おれの場合はCで倉庫番を作れるまでに2年ぐらいかかったかな。
最初は簡単なゲーム(双六とか)その辺を目標にしてみれば。

894 :デフォルトの名無しさん:2013/12/12(木) 00:45:44.08
>>887
英語の教科書を1冊読み終えてもまだ小説は書けないレベルですか?

簡単な所からゲームを作って経験値を上げていけば、
将来、売れるものを作れるようになるかもね。

895 :デフォルトの名無しさん:2013/12/12(木) 00:50:53.60
初心者はDxLibでもやっとけ
簡単にできるから

896 :デフォルトの名無しさん:2013/12/12(木) 01:07:54.37
ゲームを作りたいならプログラマなんかになったらダメだよ(笑)
映画を作りたいならまず脚本の勉強をするだろ?

897 :デフォルトの名無しさん:2013/12/12(木) 01:10:03.85
撮影技師から映画監督になった人は誰もいないようにね

898 :デフォルトの名無しさん:2013/12/12(木) 01:15:10.24
>>887
作るゲームにもよるが、凝ったものでないなら入門書一冊の内容+αで十分ゲームは作れる
ただしそれは「入門書を終わらせればゲームが作れるようになる」ということではない。もっと言ってしまえばCの仕様書(かなり難解)の内容を全て覚えたとしても「ゲームが作れる」とは断言できない
本を読むことが目的じゃないんだから、何の本を読めばいいか考える暇があったら手を動かせ。本は必要に応じて辞書的に使えばいいんだ

899 :デフォルトの名無しさん:2013/12/12(木) 01:52:36.95
釣りにマジレスしてどうすんだwww
アホばっかだな

900 :デフォルトの名無しさん:2013/12/12(木) 09:09:31.37
作りたいものがなければいくらお勉強しても無駄
逆にどうしても作りたいという情熱があれば必死こいて調べて作るから予め知識は必要ない
要はあなたは何がしたいのってこと

901 :デフォルトの名無しさん:2013/12/12(木) 09:14:26.70
>>896
プログラマ出身のゲームデザイナーなら
2ch にも★いるやん

902 :デフォルトの名無しさん:2013/12/12(木) 09:22:44.07
個人レベルなら自分でプログラムをおぼえたほうが早いな。
同人ゲームサークルで「プログラマー、グラフィック、サウンド、シナリオライター募集。当方、総監督です」
みたいにスタッフ募集しても集まらんし。

903 :デフォルトの名無しさん:2013/12/12(木) 09:34:56.04
集まらないのは人徳がないからだろ

904 :デフォルトの名無しさん:2013/12/12(木) 09:46:40.14
「器」としての仕事すらしないからだよ

905 :デフォルトの名無しさん:2013/12/12(木) 09:59:36.83
>>902
これは「バンドメンバー募集。当方ボーカル。ギター、ドラム、ベース急募」のほうが10倍マシなレベルの募集だな。

906 :デフォルトの名無しさん:2013/12/12(木) 10:19:45.04
ギルガメッシュの酒場 か 悪手でもカント寺院で探さなきゃね
何の約束も無しにLv1装備なしで1:1に佇んでてもサクサク無視して去られるだけだよ

907 :デフォルトの名無しさん:2013/12/12(木) 11:11:00.53
VSで
x=x+1;と間違えて
if(a>1)x+x+1;とコードを間違えてもエラーが出ないのは何故でしょう?
勿論正しくは実行されませうんが

908 :デフォルトの名無しさん:2013/12/12(木) 11:11:37.46
http://vivi.dyndns.org/tech/cpp/ex-1.html
C/C++ ポインタの問題集
おまいら、さくさく解ける?

909 :デフォルトの名無しさん:2013/12/12(木) 11:34:14.98
>>907
式に ; を付けたものも正しい文だから。

というか、x=x+1 も単なる式で、それに ; が付いて文になってるだけ。

910 :デフォルトの名無しさん:2013/12/12(木) 11:40:04.50
>>907
警告はでるな。

911 :デフォルトの名無しさん:2013/12/12(木) 11:43:46.08
>>908
基礎すぎ。

912 :デフォルトの名無しさん:2013/12/12(木) 11:44:31.37
>>907
間違ったコードなりに、正しく実行されるだろ。

913 :デフォルトの名無しさん:2013/12/12(木) 11:47:13.55
>>905
「バンドメンバー募集。当方プロデューサー。ボーカル、ギター、ドラム、ベース急募」
だろ

914 :デフォルトの名無しさん:2013/12/12(木) 11:58:36.78
>>913
金出してくれるなら文句はないよ

915 :デフォルトの名無しさん:2013/12/12(木) 12:02:30.26
>>908
// 25
void okp_strcat(char *dst, const char *src)
{
strcpy(strchr(dst, '\0'), src);
}
// 26
void okp_strins(char *dst, const char *src)
{
int len = strlen(src);
memmove(dst + len, dst, strlen(dst));
memcpy(dst, src, len);
}
// こういうコードを期待しているわけではないだろうなw

916 :デフォルトの名無しさん:2013/12/12(木) 12:04:26.03
x+x+1;という式はxに変化もたらしますか?

=のいらない式は
++
--
と限られてると思いますが

917 :デフォルトの名無しさん:2013/12/12(木) 12:11:01.37
>>916
xに変化をもたらさなくても(文法用語では副作用がなくても)、式は式。
strcpy(a, b);
も式に;のついた文だし、
strlen(a);
も同じ。

明らかに副作用のない式とわかれば、
親切に警告してくれるコンパイラが多いと思うけど。

918 :デフォルトの名無しさん:2013/12/12(木) 12:22:33.68
>>914
売上次第

919 :デフォルトの名無しさん:2013/12/12(木) 12:25:26.35
xから読みだす事に意味があるかもしれない

920 :デフォルトの名無しさん:2013/12/12(木) 12:53:36.27
>>903
プログラムとかグラフィックとか地味な作業を人にやらせるのって、並大抵の「人徳」じゃムリ
金を出すか自分でやるかのどちらか

921 :デフォルトの名無しさん:2013/12/12(木) 13:02:15.07
whil(hogehoge);
とかな

922 :デフォルトの名無しさん:2013/12/12(木) 13:03:10.71
グラフィッカーは集めやすい部類だと思うぞ。質はともかくとして
ゲーム作ろうぜ系の企画はだいたいプログラマーのみ不在で頓挫する

923 :デフォルトの名無しさん:2013/12/12(木) 13:05:09.48
へー

924 :デフォルトの名無しさん:2013/12/12(木) 13:23:42.66
AOEみたいなRTSをCで作ってるんだけど、ユニットって360度自由に動かせる
じゃないですか?あれってグラフィック360度全部用意してるんですか?
ゲーム作りに詳しい人教えて下さい

925 :デフォルトの名無しさん:2013/12/12(木) 13:28:46.68
3Dモデルにレンダリングしてる

926 :デフォルトの名無しさん:2013/12/12(木) 13:32:19.84
>>925
レンダリング以外で方法ありませんか?

927 :デフォルトの名無しさん:2013/12/12(木) 13:35:43.76
AOEUのあの動作は3Dモデルですか?それとも
絵なんでしょうか?

928 :デフォルトの名無しさん:2013/12/12(木) 13:58:27.84
問:3Dモデル無しで済ませる方法はないでしょうか
答:トップビューなら1枚絵のチップを回転させるだけで済みます
  やりたいことが労力に見合うかどうかを常に考えることが大切ですね

929 :デフォルトの名無しさん:2013/12/12(木) 14:44:39.36
>>915
> // こういうコードを期待しているわけではないだろうなw
関数を利用するのではなく、ちゃんと自分で作ってくださいw

930 :デフォルトの名無しさん:2013/12/12(木) 15:19:48.21
接頭辞okpが何の略か答えなさい

931 :デフォルトの名無しさん:2013/12/12(木) 15:26:38.74
俺の股間がポリリズム

932 :デフォルトの名無しさん:2013/12/12(木) 15:26:50.43
>>930
> 接頭辞okpが何の略か答えなさい

http://com.nicovideo.jp/community/co2015181

933 :名無し募集中。。。:2013/12/12(木) 15:48:39.69
岡π

934 :デフォルトの名無しさん:2013/12/12(木) 16:07:19.70
アマ○ンにC、C++、C#の本がありますが、SRPGを作るにはどれを最初にやればいいですか?

935 :デフォルトの名無しさん:2013/12/12(木) 16:09:42.68
どれでもOK
その程度の質問をする人なら、まず間違いなく 目的達成の前に挫折します。

936 :デフォルトの名無しさん:2013/12/12(木) 16:31:46.01
釣り汚染度が一気に上昇しました
除厨センターにお申し出下さい

937 :デフォルトの名無しさん:2013/12/12(木) 16:37:42.93
ttp://www.amazon.co.jp/dp/4862461417
8まで進んでたか

938 :デフォルトの名無しさん:2013/12/12(木) 16:39:30.13
>>934
ふつうのLinuxプログラミング(青木峰郎)
やさしいc++入門(高橋まな)
Efffective C++
Linux環境設定のすべて
Linuxコマンド ポケットリファレンス
アルゴリズムクイックリファレンス(ヤドカリ)
VIm完全バイブル
入門Git(濱野純)
コードリーディング(Diomidis Spinellis)

NeHeのOpenGL,SDL入門
セガの人が書いたゲーム開発入門本
よく分からない洋書

939 :デフォルトの名無しさん:2013/12/12(木) 16:43:20.51
これをPythonで開発すると、4つぐらいは省略できるからPythonで書け

940 :デフォルトの名無しさん:2013/12/12(木) 16:46:16.38
>>934
C#が一番楽

941 :デフォルトの名無しさん:2013/12/12(木) 16:48:01.97
c#なんてゲームのサンプルコードみたことない
pygameのサンプルを模倣する方が先
大きさも手頃

942 :デフォルトの名無しさん:2013/12/12(木) 16:52:30.89
unityってC#でしょ?

943 :デフォルトの名無しさん:2013/12/12(木) 16:53:50.50
ゲームのアルゴリズムを自分で考える段階で、unityなんか使っても大変なだけ

944 :デフォルトの名無しさん:2013/12/12(木) 16:57:04.34
c#でアルゴリズムを書くには人生が短すぎる

945 :デフォルトの名無しさん:2013/12/12(木) 17:03:54.49
ロジック書くのはpythonでもC#でも変わらない
つかpythonのほうがいろいろ大変そう。

946 :デフォルトの名無しさん:2013/12/12(木) 17:05:19.35
890さんを見てC#に興味を持ちましたが、C#の本を購入して勉強し始めたらCとC++の本は必要ないんですか?

947 :デフォルトの名無しさん:2013/12/12(木) 17:08:21.11
http://www.amazon.co.jp/dp/4822222764

948 :デフォルトの名無しさん:2013/12/12(木) 17:12:36.96
まったく別物だからイラナイ

949 :デフォルトの名無しさん:2013/12/12(木) 17:22:35.40
そうなんですか、わかりました。
C#始めたらそれを集中に勉強すればいいんですね

950 :デフォルトの名無しさん:2013/12/12(木) 17:23:22.01
ゲームアルゴリズムを学びたいのか、売り物を作りたいのか謎
入門なら基本となるゲームのアルゴリズムに集中した方が良いよ。
pygameだとサンプルもチュートリアルもフリーだし

951 :デフォルトの名無しさん:2013/12/12(木) 17:25:42.71
>>934
PC‐9801 マシン語入門
美少女ゲーム制作講座―VISUAL BASIC for WINDOWS
実践PC‐98アセンブラ入門

952 :デフォルトの名無しさん:2013/12/12(木) 17:36:58.49
STLやCollectionライブラリの使い方を覚えてる間に時間が無くなるに1ペリカ

953 :デフォルトの名無しさん:2013/12/12(木) 17:42:43.12
ツクールを使わず有名なSRPGに似たものを自作したいのが動機ですね

954 :デフォルトの名無しさん:2013/12/12(木) 17:56:48.94
滲み出す混濁(こんだく)の紋章 不遜なる狂気の器
湧きあがり・否定し 痺れ・瞬き 眠りを妨げる 爬行する鉄の王女
絶えず自壊する泥の人形 結合せよ 反発せよ 地に満ち己の無力を知れ

955 :デフォルトの名無しさん:2013/12/12(木) 18:34:21.46
やばいぞ、何か詠唱している・・・

956 :デフォルトの名無しさん:2013/12/12(木) 18:39:46.00
トップビュー以外ならどうやればいいですか?

例えばテニス フラッシュで検索したらFLASHのゲームがあると
思いますが、あれも3Dレンダリングしてますか?

957 :デフォルトの名無しさん:2013/12/12(木) 18:45:20.93
Flash,Silverlightは死んだんだ
webGLかcanvasに書くんだ

958 :デフォルトの名無しさん:2013/12/12(木) 18:48:41.18
すれち

959 :デフォルトの名無しさん:2013/12/12(木) 20:17:54.75
このスレよりゲ制作板のほうがいいと思う

960 :デフォルトの名無しさん:2013/12/13(金) 15:28:02.16
配列使ってランダム関数でビンゴカード作ってるんですけど
数字が被らないようにするにはどうしたらいいですか?

961 :デフォルトの名無しさん:2013/12/13(金) 15:31:48.69
ビンゴゲームなんて作って誰が遊んでくれるよ
作るだけ無駄

iosに未だ移植されていないFF7を移植するほうがよっぽど
需要は多いぞ

962 :デフォルトの名無しさん:2013/12/13(金) 15:33:16.01
ランダム関数で数値を生成するんじゃなくて
最初から一意な数字を用意してそれをランダムに並べ替えたらどうじゃ

963 :デフォルトの名無しさん:2013/12/13(金) 15:42:02.52
前準備
 存在しえる数字の数だけの大きさの配列 A[] を用意 (トランプだと 52枠 とか)
 配列の中に値を埋め込む ※ このときは順番に並んでても良い
 これを山場とし、山にある数 n を覚えておく (トランプだと n=52)

抽選
 0 〜 山数 n-1 までの乱数で 抜き出す位置 i を決める
 A[i] が カードの値
 被らないように 次の抽選では 山から A[i] を取り除き、山の数を1つ減らす
  A[j] = A[j+1] (j=i〜n-2) 
  n = n -1

山がなくなるまで抽選を繰り返し

964 :デフォルトの名無しさん:2013/12/13(金) 15:51:27.12
ありがとうございます参考にさせていただきます!
まだ習い始めなんで自己満で作ってるだけです

965 :デフォルトの名無しさん:2013/12/13(金) 16:26:37.61
配列の値のソートについて以下の通りに関数q_sort(int *a, int left, int right)を作れって問題なんですがさっぱりわからないので教えて下さい

@配列中の適当な値(例えば中央にある値)をkey値とする
Aa. 左からkeyより大きい値を探し見つかったらストップ(i番目)
 b. 右からkeyより小さい値を探し見つかったらストップ(j番目)
 c. i≧jならBへ、そうでなければi番目の値とj番目の値を入れ替えて、i+=1, j-=1 としてAaから繰り返し

B前方の配列の長さが2以上なら@Aを繰り返す(前方の配列に対して関数q_sortの再帰呼び出し)
C後方の配列の長さが2以上なら@Aを繰り返す(後方の配列に対して関数q_sortの再帰呼び出し)

966 :デフォルトの名無しさん:2013/12/13(金) 16:35:39.66
>>965
名前からして明らかにクイックソートなんだしググればいいだけだろ…

# 学校はプログラミングの前にGoogleの使い方から教えた方がいいんじゃないだろうか

967 :デフォルトの名無しさん:2013/12/13(金) 16:46:44.85
yahooのほうがいいだろ

968 :デフォルトの名無しさん:2013/12/13(金) 16:58:41.40
>>965
http://ideone.com/6vKmE5

969 :デフォルトの名無しさん:2013/12/13(金) 17:07:52.57
>>965 >>968
間違えてたので治した
http://ideone.com/4fHRb4

970 :デフォルトの名無しさん:2013/12/13(金) 17:14:39.24
プログラミング言語Cのp149に

char ( *( *x() )[] )()
x: function returning pointer to array of pointer to function returning char

char ( *( *x[3] )() )[5]
x: array[3] of pointer to function returning pointer to array[5] of char

とあるんでんが、よくわかりません。よくある図と矢印で書いたらどういう感じになるので
しょうか。

971 :デフォルトの名無しさん:2013/12/13(金) 17:16:20.17
ああ
まだ治ってなかったな

972 :デフォルトの名無しさん:2013/12/13(金) 17:16:56.62
>>970
英語が理解できないということですか?

973 :デフォルトの名無しさん:2013/12/13(金) 17:29:10.99
>>970
その程度のポインタが理解できないって基礎がなってないよ
ポインタの基礎から読み直してみなよ

974 :デフォルトの名無しさん:2013/12/13(金) 17:44:25.37
>>971
試行錯誤してるんですがうまくいきません
どう直せばいいのでしょうか

975 :デフォルトの名無しさん:2013/12/13(金) 17:49:03.21
>>974
問題文に不備があるんじゃね?ω

976 :デフォルトの名無しさん:2013/12/13(金) 17:49:24.37
>>974
ネットでクイックソートのソースコード探せばいいだけじゃん
なんでわざわざ動かないバグってるコードを使おうとするの?

977 :デフォルトの名無しさん:2013/12/13(金) 17:51:31.20
おかしいな
問題に書かれている通りに実装したのに
バグってるぞ

978 :デフォルトの名無しさん:2013/12/13(金) 17:52:46.34
随分曖昧な問題だな

979 :デフォルトの名無しさん:2013/12/13(金) 17:53:51.54
ここって技術的な会話があまりなされませんね

980 :デフォルトの名無しさん:2013/12/13(金) 17:54:32.35
>>970
識別子と*を見つけたら、内側から外へ向かって読んでいく
そもそも、そんな複雑なポインタは使わん

981 :デフォルトの名無しさん:2013/12/13(金) 17:57:19.43
>>977
問題に書かれてる通りに実装したのなら何と比較してバグだと判断したの?
仕様通りなら問題ないじゃん
クイックソートのコードをコピペしてきた生徒を吊し上げるための引っ掛け問題かもしれないし

982 :デフォルトの名無しさん:2013/12/13(金) 17:58:28.47
char ( *( *x() )[] )()
x: function returning pointer to array of pointer to function returning char
*x() -> function returning pointer
*(E)[] -> to array of pointer
char (E)() -> to function returning char

983 :デフォルトの名無しさん:2013/12/13(金) 18:04:01.75
>>965
演習室で印刷に失敗した裏紙に配列の繪と有向グラフと関数の対応関係を図にしてかけ

984 :C言語なら俺に聞け(入門編)Part 123:2013/12/13(金) 22:21:33.63
C言語の入門者向け解説スレッドです。

★前スレ
C言語なら俺に聞け(入門編)Part 122
http://toro.2ch.net/test/read.cgi/tech/1384663794/
★過去スレ
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++の宿題片付けます 166代目
http://toro.2ch.net/test/read.cgi/tech/1381909900/
★C++言語については避けてください。C++対応明記スレへどうぞ。
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること。
  # サイズが大きい場合はアップローダ等を利用してください。
http://codepad.org/
http://ideone.com/
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
【重要】
hogeは禁止します、使用しないでください。
万が一hogeが書き込まれても、スルーしてください。
相手にするとあなたも荒らしと同じ扱いになります。
なお、hogeはNGワードに追加しておくことが強く推奨されています。

985 :デフォルトの名無しさん:2013/12/13(金) 22:25:11.50


986 :デフォルトの名無しさん:2013/12/14(土) 06:07:45.41
>>965
2のaとかbで見つからなかったときにどうするか書いてない

987 :デフォルトの名無しさん:2013/12/14(土) 06:55:48.07
C++超初心者です
C++についてなんですが、CLASS内で構造体を作ってその構造体メンバへアクセスしたいのですが、
クラスを継承したらうまくいったのですが、継承する以外に方法はありますでしょうか?
↓以下source
class _CLASS{

public :
_CLASS(){

}
public :

struct DATA{

int x;
int y;

};

struct DATA data = { 5, 6};
};

class _NewClass : _CLASS{

public :
struct DATA data = {10, 20};

}; 以下(略)

988 :デフォルトの名無しさん:2013/12/14(土) 07:19:31.91
スレタイ見ようZ

989 :デフォルトの名無しさん:2013/12/14(土) 07:59:28.14
>>987
C++は専門外だけど、publicなら継承しないでもアクセスできるだろ
http://ideone.com/qNvImb

990 :デフォルトの名無しさん:2013/12/14(土) 08:19:14.15
>>989
リンク先のを試してみたんですがエラーがToT
gccコンパイラだからっていうのは関係ないですよね・・・
もう少し試してみます…orz

991 :デフォルトの名無しさん:2013/12/14(土) 09:53:25.46
エラーメッセージ読めない池沼はコンパイラつかう資格ねーよ
夜間中学入ってやりなおせ

992 :デフォルトの名無しさん:2013/12/14(土) 10:29:27.85
つ -W -Wall

993 :デフォルトの名無しさん:2013/12/14(土) 10:32:46.73
C++11じゃないなら、コンストラクタ書き直せ
CLASS_() { data.x=5; data.y=6; }
CLASS_(int x, int y) { data.x=x; data.y=y; }

994 :デフォルトの名無しさん:2013/12/14(土) 11:04:51.85
池沼はとっくに別スレに無言で移動したようだぞ

995 :デフォルトの名無しさん:2013/12/14(土) 11:45:45.22
M個の一桁の数字(重複なし)からなるM桁の数字を
上位の桁から出来るだけ大きい数を選択する手順で順列にしたとき
n番目の数字を出力する関数を作成することは出来ますか?

たとえば M = 4 で 数字[2, 3, 5, 7] からなるとき n = 3 は
7532 ← n = 1
7523 ← n = 2
7352 ← n = 3
7325 ← n = 4
...
なので
int array[] = {2, 3, 5, 7};
int i = func(array, 4, 3);

i == 7352
となる func() が欲しいです

996 :デフォルトの名無しさん:2013/12/14(土) 11:49:22.52
関数の中で n 版目が出て来るまでループすると時間がかかるので
出来ればループを使わないで済む方法が知りたいです

997 :デフォルトの名無しさん:2013/12/14(土) 11:52:20.26
>>955
ベタに総あたりして、ソートして希望順位の値を出力するじゃだめなのかしらん?

998 :デフォルトの名無しさん:2013/12/14(土) 11:54:09.72
自前でよういしろ

999 :デフォルトの名無しさん:2013/12/14(土) 11:55:04.43
私は発見した。だが、それを書くには、
この余白は狭すぎる。

1000 :デフォルトの名無しさん:2013/12/14(土) 11:55:40.28
フェルマー乙

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

217 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)