[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 10/04 01:38 / Filesize : 88 KB / Number-of Response : 459
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 17:36:51 ]
C言語の*入門者*向け解説スレッドです。
★前スレ
C言語なら俺に聞け(入門編)Part 69
hibari.2ch.net/test/read.cgi/tech/1284477697/
★過去スレ
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++の宿題片付けます 140代目
hibari.2ch.net/test/read.cgi/tech/1284632294/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
  # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
  # サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。

2 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 17:39:40 ]
                     __
                ,,r‐''"~~´:::::::::::::゙~''''‐-、,
              ,,r''´::::::::::::::::::::::::::::::::::::::::::::::::::゙丶、
            /:::::::::::::::::::::::::::::,r、::::::::::::::::::::::::::::::::\
           / ......::::::::::::ィ::::::::// ヽ:::::ト、::::::::::::::::........ヽ
           /:::::::::::,r::::::/ |:::::/ /  ゙、::l ヽ:::::::::、::::::::::::::゙、
           /:::::::::::/i::::/,,,,l:::/ /   ヽト‐-、:::::|',::::::::::::::::i
          i::::::i:::::/'|::/  |/  /     !  ヽ::|ヽ:::::i:::::::::l
         l:::::::|:::/ .i/              ヽ:| ゙、::::i:::::::::|
           |:::::::|/                 ゙'! ヽ,!:::::::::|
         |::::::;;;;i -‐''''''"""~~     ~~"""゙'''''''''‐ |;;;;::::::::|
          |::::::;;;;;|                        |;;;;:::::::::|
        |::::::::;;;;l                    l;;;;:::::::::|
         |:::::::;;;;;|                       |;;;;::::::::|
     _,,,r-┴、::;;;;ヽ、                   ノ;;;:::::-‐-、
    / 、  、 ヽヽ-,;;;゙ヽ、      ヽフ       ,,,イr/´/ ,r  ゙'ヽ、 聞いてやーー
 ̄ ̄\,,,ヽ、,,i、,,,i、ノ' ̄ ゙゙̄'''‐- ...,,,,,,,,,,,,,,,,,,.... -‐'''~  ̄(,,しL,/,,,r'~,,,-‐' ̄ ̄


3 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:13:47 ]
VC++でC99を使う方法おしえて

4 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:18:54 ]
VCにもいろいろあるでよ

5 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:20:34 ]
wikipediaごときだと↓みたいになってる。
ja.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
...Visual C++のコンパイラは、C, C++, C++/CLIのソースコードを入力に受け付ける。C言語規格に関しては、Visual C++ 9.0 (2008) SP1の時点でANSI C89 (ISO C90, ISO/IEC 9899:1990) 対応[1]であり、C99には対応していない。...

6 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:22:28 ]
>>5
そこをなんとか対応できませんか?

7 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:23:48 ]
おバカさんですか?バージョン聞かれてないかい?

8 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:27:02 ]
>>7
すいませんでした
VC++ 2010 Express使ってます

9 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:30:50 ]
こんなことかいてるところがあるね
ttp://d.hatena.ne.jp/crimsonwoods/20090911/1252597456

10 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:31:01 ]
C99がCのスタンダードになることは永遠にない



11 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:31:48 ]
VC++はC++専用、もっと言えばWindowsアプリ専用と考えた方がいいよ。
CコンパイラとしてはC95にもC99にも対応してない古臭い仕様だから。

12 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:33:32 ]
C99対応だと何が嬉しいの

13 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:33:33 ]
そうなんですか?CをコンパイルするときはBCCのほうがいいでしょうか?

14 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:36:45 ]
BCCはもっと古いが、まあ準拠度で言えばC89だからVC++と同等ではある。

15 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:41:23 ]
あした学校の授業でプログラミングあるのでC89あるか先生に聞いてみます

16 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:54:33 ]
BCCって今でも無料版あるの?

17 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:59:10 ]
blogs.msdn.com/somasegar/archive/2008/11/21/c-enhancements-in-vs-2010.aspx
こっちのコメント欄でのやりとりでも、
C99欲しいって声はあんまりないからやらないんだって言っているね。

18 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 18:59:26 ]
今は私立の小学校でもプログラミングの授業があるらしいな

19 名前:デフォルトの名無しさん [2010/09/26(日) 19:01:05 ]
プログラミングの仕事がしたいんですけど未経験で30歳はキツイですか?

20 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 19:02:59 ]
26以上は実務経験ないとキツイっていうか無理



21 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 19:16:26 ]
まあ会社によるけど厳しいよね
今の仕事があるなら無理に転職する必要はない

22 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 19:35:55 ]
暗号化はこっち

■暗号技術【ROUNDsurea】■
hibari.2ch.net/test/read.cgi/tech/1180280982/

23 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:28:47 ]
てすと

24 名前:デフォルトの名無しさん [2010/09/26(日) 20:41:58 ]
暗号は今一つ盛り上がりに欠ける

25 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 20:47:56 ]
暗号に限らずアルゴリズム関連のスレは既存のものを使ってればいいだけだから
今更議論することも少ない

26 名前:デフォルトの名無しさん [2010/09/26(日) 21:01:19 ]
新型は要らない!という話?

27 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 21:08:46 ]
いや新型は欲しい、
既存型の複製を作ってもなあ・・・って話

車輪の再発明は学習には必要だけども、
他人にとっては今更って思うから盛り上がりに欠ける

28 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 21:13:08 ]
暗号化ならとりあえずカメリア使っとけ

29 名前:デフォルトの名無しさん [2010/09/26(日) 21:18:06 ]
わざわざNTTに特許料払うのか?

30 名前:デフォルトの名無しさん [2010/09/26(日) 21:18:57 ]
Code Based Cryptographyがいい!



31 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 21:45:06 ]
ひゅ〜ひゅ〜

32 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 21:46:21 ]
vc++限定の話です。
#pragma intrinsicっていうプリプロセッサ指令あるじゃないですか?

これって数学の関数の処理を最適化して高速化するもんですよね?
たとえば、sin,cos,atan2を高速化したければ、

#pragma intrinsic(sin,cos,atan2)ってかけばOKなんですか?

33 名前:デフォルトの名無しさん [2010/09/26(日) 21:59:08 ]
>>24
まともにレスできる者の絶対数が少ないのと
2ちゃんで発言するかどうかの関門でまた厳しいふるいがあるからな

34 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 21:59:09 ]
>>32
>>1

35 名前:デフォルトの名無しさん [2010/09/26(日) 22:04:10 ]
C の「高級アセンブラ」としての使命が問われている、根本的な問題だと思うが

36 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:04:40 ]
>>33
暗号化技術そのものは秘密でもなんでもないわけだから
べつに2ちゃんで話そうが駅のホームやスターバックスで話そうがどうってことないはず。
つまりはまさに暗号についてわかってる奴が少ないって事だろうね。

37 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:06:18 ]
>>32

>>1
>★C++言語については避けてください。C++対応明記スレへどうぞ

38 名前:デフォルトの名無しさん [2010/09/26(日) 22:13:46 ]
>>36
理想論に異を唱えるつもりはないが
スターバックス怖いぞ

39 名前:デフォルトの名無しさん [2010/09/26(日) 22:15:25 ]
オリジナル暗号実装してて速度でGPGに勝ったんだけど、OpenSSLに負けてる。

40 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:19:09 ]
問題は強度だ



41 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:25:35 ]
早いより硬いほうが女性も喜ぶよね

42 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:40:43 ]
勝ち負けを論じることができるレベルのアルゴリズムでも実装でもなかった。

43 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:44:47 ]
>>38,39←ほらね、こういう暗号とはどういうものなのかという初歩を知らない奴はこういうリアクション。
2ちゃんのプログラムスレでもこのレベルだからまぁ、発展的な話なんて無理と言えば無理。

44 名前:デフォルトの名無しさん [2010/09/26(日) 22:46:27 ]
ニヨニヨ

45 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:49:54 ]
>>38
暗号化のアルゴリズムってのは本来、秘密にするべきものではなく
世界中の暗号学者にそのアルゴリズムの詳細仕様をメールで送っても
ゴールデンタイムのTV放送で全国ネット、世界中継で読み上げてもおkなもんなのだよ。
そうやってアルゴリズムを誰もが知っていてもなお、
解読するのに実質不可能と思えるくらいの時間を要するものを
使用に耐えうる暗号と言う。

46 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 22:58:49 ]
俺の理解では鍵交換した後は対称鍵で暗号化するもんだと思ってた。
gpgにせよopensslにせよその暗号化アルゴリズムは強度と速度から適切なものを選択
するものであり、どのアルゴリズムをどう使ったか含めて言わないあたり院生ってのも
ちょっと怪しいなと思った。

47 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:03:51 ]
ぶっちゃけさJavaでアンドロイドアプリ開発したいんすよ
てゆーかiphoneがObjective-Cで開発みたいな?
だから初めての言語はC#かJavaかCどれを学習したらいいんですか?
ぶっちゃけトークでよろしく!

48 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:04:04 ]
>>45
ケルクホフスの原理は必須ってわけでもない
そうあるべきって主張があるだけ

現代においてもなお、クローズドな仕様・実装のほうが
より機密性が高くなるとする立場は存在する
典型例がNSAで、国家機密に使われる非公開暗号を用意しているらしいし

49 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:05:09 ]
>>47
アンドロイドはJAVAでいいでしょ

50 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:06:06 ]
>>47
Javaでアンドロイドアプリ開発したいんなら、Javaだろう
他の言語を学習する理由がどこにある



51 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:08:16 ]
おれまだ中1なんっすよ
やっぱり初めの言語は大事かなって思ってるわけっすよ


52 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:08:59 ]
中一だと順番違うの?

53 名前:デフォルトの名無しさん [2010/09/26(日) 23:13:49 ]
黒客には陽と陰がいてそれは
自らの発見で名声を欲しがる者と
自らの発見そのものに満足する者がいる

暗号論において怖いのは後者だということは論を待つまい

54 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:15:00 ]
>中一

なか はじめ


55 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:16:05 ]
プログラミングの最初なんてfor とか 変数 とか 関数が理解できればどれも大して変わらないだろ。
俺はjavascriptから入ったから型が最初は無かった。そういや、JSやる前に授業でRやったけど、
さっぱり身につかなかったな。目標持って自発的にやれよ。

56 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:32:57 ]





57 名前:デフォルトの名無しさん mailto:sage [2010/09/26(日) 23:52:36 ]
同じバイナリが違う環境で動作するときにアラインメントの取り方だけが違うっていう場合はあるの?

58 名前:デフォルトの名無しさん [2010/09/26(日) 23:55:55 ]
ないって保証が悪魔の証明なんだよ

59 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 00:00:11 ]
ほっ
ほっ

60 名前:デフォルトの名無しさん [2010/09/27(月) 01:35:11 ]
300Mのファイルの読み書きだけで16秒もかかるんですが、OpenSSL
は暗号化の処理を入れても10秒位しかかかりません。
どうすればファイルIOを早く出来ますか?



61 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:37:28 ]
もういい加減消えろ

62 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 01:47:41 ]
つメモリマップドファイル

63 名前:デフォルトの名無しさん [2010/09/27(月) 09:23:43 ]
while((read_size=fread(buff,1,SIZE,fq)))を
while((read_size=fread(buff,4,SIZE,fq)))とするとファイルの4分の1
しか書き込めません。なぜですか?

64 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 09:31:05 ]
>>63
fread()の戻り値は、第2パラメータで指定した単位で何個読み取れたか。
つまり、実際に読めたのは(戻り値*第2パラメータ)[bytes]になる。

65 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 09:53:41 ]
>>63
そもそも読み込みしかしてないだろ

66 名前:デフォルトの名無しさん [2010/09/27(月) 10:02:03 ]
fwriteの書き込みバイト数が1のままだった。4バイトにすれば早く
なるかと思ったけどならなかった。

67 名前:デフォルトの名無しさん [2010/09/27(月) 10:09:51 ]
OpenSSL調べてるけど、特別なこと何もしてないみたいだし・・・
何であんなに早いの?

68 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 10:11:57 ]
コツは、ファイルサイズを取得する関数でターゲットとなるファイルのサイズを取得し、
バッファのリミット定数と比較し、OKならファイルサイズ分がばっと一括で読んじゃうのが一番速い方法。
これならHDDへの読込みアクセスが一回で済む
内容を分割したけりゃその後に分割(こうすればメモリ上のアクセスなので数段速い)

69 名前:デフォルトの名無しさん [2010/09/27(月) 10:13:00 ]
具体的なソースがほしいです

70 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 10:13:44 ]
>>69
甘ったれんな



71 名前:デフォルトの名無しさん [2010/09/27(月) 10:20:58 ]
バッファサイズと読み込み時間って関係あるんですか?
増やしてもあまり変わらなかったです。

72 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 10:28:47 ]
ディスクアクセスを何回行なうか、が時間に大きく関わってくるとは思わね?
1回と10000回ディスクアクセスするんだととっちの方が時間がかかる?

73 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 10:29:37 ]
頭でコード書いてるバカはほっとけ

74 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 11:05:17 ]
またずいぶんレベルが下がったな。
前スレでは読み込みのブロッキング中に別スレッドで回せということだったと思うんだが。


75 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 11:05:29 ]
女は子宮で書くのよ

76 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 11:05:38 ]
高速化に拘るのは結構だが、せめてスレタイ読んでから書き込もうな。
高速化/効率化は明らかにスレ違いな話題だし、ここで聞いても有意な回答は望めないよ。

77 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 11:16:46 ]
>読み込みのブロッキング中に別スレッドで回せ

それもうC++の領域じゃね?
Cの仕様そのものがもう時代遅れで300MBなんてファイルを読み込むことを想定していないわけだし。

78 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 11:31:47 ]
ファイルサイズの取得

MFC CFileFindクラス
.net FileInfoクラスのLengthプロパティ

79 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:03:17 ]
つまり、C++は標準規約でスレッドに対応してると、そう仰りたいわけか。

80 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:10:40 ]
いいえ



81 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:29:02 ]
>>74
Cで別スレッドで回すってどうやんの?

82 名前:デフォルトの名無しさん [2010/09/27(月) 12:31:41 ]
timidityやtmidi95やgrooveみたいにソフトウェアでMIDIエミュレートするにはどうやるんですか?難しいですか?

83 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:34:08 ]
>>81
質問者がcygwinと言っているのだから、pthreadでも使えばいいんじゃない?

84 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:38:04 ]
>>83
でも結局、数バイトづつ読むとなると、読み終わるまで親は待たないといけなくなるよね、という矛盾

85 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:48:21 ]
ふっほっはっ

86 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:50:28 ]
>>82
MIDIで指定された音階で、指定された楽器の音を
指定された強さで鳴らすだけ。楽器の音データは
楽器の音を録音して使用する。
同時に複数音を出さなくて良いなら、
プログラムとしては大変ではない。

データを用意するのが大変なのと、
実用的なスピードで音の合成するのが大変。


87 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 12:52:47 ]
>>82
んっひっ

88 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 13:46:48 ]
で?300MBのファイルを高速で読むにはどうすんの?>>83

89 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 13:50:29 ]
別スレッドにしてもファイル読み終わるまで親スレッドが待つことになるだけでちっとも速くならないよー。

90 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 13:54:12 ]
>>86
けっこうたいへんあんんですね
ソフトシンセサイザーで一発ぼろ儲けをしてる人はハッカー



91 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 14:04:29 ]
>>87
けっこうたいへんあんんですね
ソフトシンセサイザーで一発ぼろ儲けをしてる人はハッカー

92 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 14:18:31 ]
>>88
けっこうたいへんあんんですね
ソフトシンセサイザーで一発ぼろ儲けをしてる人はハッカー

93 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 15:08:18 ]
ソフト側は素直に普通に作っとけ。
アクセスを早くとか、そういうのはハード側に求めるべきだ。


94 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 15:19:46 ]
>>88>>89
前スレを全くみていないのね。
スレッドを使うと読み込みを速くできるなんて一言も言っていない。
読み込みのブロッキング中に別スレッドで暗号化できるという話をしている。

が、質問主はマルチスレッドが大変と分かったらしく、
とにかく読み込み時間を速くすることに絞ったようですな。

95 名前:デフォルトの名無しさん [2010/09/27(月) 16:19:41 ]
ttp://sky.geocities.jp/tcshacina/hash.c
だから私を見て!

96 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 16:45:44 ]
>>95
ttp://codepad.org/gc4mHHuC
私のことも見て!


シングルスレッド
$ time ./a.exe -s DATA.bin S.bin
real 0m35.030s
user 0m19.155s
sys 0m0.624s

マルチスレッド
$ time ./a.exe -m DATA.bin M.bin
real 0m25.098s
user 0m18.906s
sys 0m0.562s

データは100MBのものを使用した。
注意:読み込みが速いわけではない。
ブロッキング中に別の処理をしているだけ。

昔遊んでたコードを元に適当に組んだ。
ちゃんとconditionとか使えばもっといい感じになると思う。

97 名前:デフォルトの名無しさん [2010/09/27(月) 17:01:33 ]
これはC言語?何してるのかよくわからない・・・
因みにバッファのサイズを262144にしたら最高速度になった。
$ time ./perm 3 3.perm

real 0m12.137s
user 0m0.015s
sys 0m0.016s

$ time ./perm 3 3.perm
real 0m6.006s
user 0m0.000s
sys 0m0.046s

かなりOpenSSLの性能に近づいた感じ。(気のせい)

98 名前:デフォルトの名無しさん [2010/09/27(月) 17:15:07 ]
こんな凄い事出来るのにプロじゃないなんて・・・

99 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 17:49:23 ]
>>96
対して速くなってないね。

>>97
つまり>>68,72っぽい方法だってことだよね。
それが正解

100 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 18:11:27 ]
>>96みたいな唯我独尊・自画自賛プログラマってほんと、プログラマなんてやめちゃえばいいのに。
どうせろくでもないコード乱造してるくせに「仕様です」とか言い張って改善する能力もない、世界のダニ。



101 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 18:28:29 ]
setbuf使って、システムコールの回数を減らしてみるとか

102 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 18:29:30 ]
setbufferのほうだった

103 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 18:38:14 ]
>>101
フリーズしたようになる?

104 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 18:44:16 ]
聞く前にまず自分で試行しろ

105 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 19:45:39 ]
汗みたけど
for(i=0;i<16;i++)
u.m[i]=buff[i+k*16];
毎回、コピーしてるここがネックじゃないかな?

106 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 19:48:44 ]
ぬっほっ


107 名前:デフォルトの名無しさん [2010/09/27(月) 20:52:39 ]
どうすればいい?

108 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 20:54:04 ]
暗号くんの嫌いなポインタを使うんだよ

109 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 20:55:29 ]
キャストでやる手もあるかな

110 名前:デフォルトの名無しさん [2010/09/27(月) 20:55:47 ]
早くなるの?



111 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 20:57:26 ]
どう考えてもディスクから読み込む必要ないよな
聞いてるやつも教えてるやつも同一人物としか思えなくなった

112 名前:デフォルトの名無しさん [2010/09/27(月) 20:58:18 ]
SSE2命令でループをベクトル処理してくれる機能があるんだけど、
それよりも効果がありますか?

113 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:00:01 ]
ひっふっ

114 名前:デフォルトの名無しさん [2010/09/27(月) 21:00:10 ]
別人です

115 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:06:03 ]
書き方が悪くて、128ビットアクセスになってないみたいだからね

116 名前:デフォルトの名無しさん [2010/09/27(月) 21:07:17 ]
今日はもう寝るので明日までに解決しといてください

117 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:16:11 ]
もうこいつに反応するやつは同一人物でいいよ。俺含めて。

118 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:26:43 ]
昔のベーシックみたいな書き方してるからかな、反応しちゃうのは

119 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:31:48 ]
いいですよ

120 名前:デフォルトの名無しさん [2010/09/27(月) 21:32:41 ]
工業高生なんだが
10 main()
20 {
30 printf("ハジメマシテ\n");
40 }
こんな行番号まで入れてポケコンで頑張ってるんだけど
今のところこんなことしかできないんだけどどこから頑張ればいいの?



121 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:34:14 ]
嘘つきには教えない

122 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:34:31 ]
ポケコンだと派手なコトできないから
数値計算系のやつでもがんばってみたら?

123 名前:デフォルトの名無しさん [2010/09/27(月) 21:34:40 ]
すいません、intも一応使えます。

124 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:35:31 ]
工業高生ねえ。。。

125 名前:デフォルトの名無しさん [2010/09/27(月) 21:35:50 ]
連レスすまぬ。
>>122了解したぜよ!あとifとか覚えて情報技術3級狙ってくる!

126 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:43:53 ]
情報技術って情報技術検定のこと?
あれ、1級以外だとジュニアマイスターの点数稼ぎにも使えないから
受ける意味はあまりないと思う

127 名前:デフォルトの名無しさん [2010/09/27(月) 21:46:16 ]
>>126
部活でとあるソーラーカーレースやらその他いろいろにでてるんだが
それにでるだけでジュニアマイスターの点数がたまって危険物取扱をとるだけで
シルバーか何かになれるんだ、ごめん。

128 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:46:51 ]
>>120
SHARPのPCG-850とか?
懐かしいなおい。

129 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:50:16 ]
てかポケコンって今でも売ってるのか。

130 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 21:59:37 ]
>>127
別表2、3に参加だけでOKってやつなかった気がするんだが



131 名前:デフォルトの名無しさん [2010/09/27(月) 22:21:06 ]
>>130
一応、成績はある程度残さないと高い得点は入らないんだけどね。
ただ、そういう先輩もいただけだから自分は無理かな。
>>128
.SHARP PC-G850VS
処理速度が速くなったせいで処理速度固定させないと
持ってる雑誌のゲームとかできないんだよね。

132 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:09:14 ]
>情報技術検定
受験料安すぎと思ったら高校生向け試験なのね
オラクルマスター受けたいけどxマソは学生にゃ高すぎる・・・

133 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:12:33 ]
自演注意

134 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:16:11 ]
基本情報も応用情報も5000円だろ

135 名前:791 mailto:sage [2010/09/27(月) 23:17:17 ]
自演


136 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:21:02 ]
>>134
それは情報技術"者"検定

137 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:24:47 ]
>>134
情報技術検定 != 情報処理技術者試験
基本応用とったからベンダー資格にも手をだそうかと思案中

138 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:25:57 ]
高速なファイルアクセスの書き方も知らんようなヘボどもが

139 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:32:03 ]
>>136>>137
知ってるけど

140 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:37:56 ]
分かってねえだろks



141 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:44:08 ]
>>132が情報技術検定は安いとか、オラクルは高いとか言ってるから
それなら基本や応用を受ければいいと言ってるだけ

142 名前:47 mailto:sage [2010/09/27(月) 23:45:01 ]
ども47です
俺的にはさ、とりあえず自分の好きに使えるPCが今ないからさ
お金貯めて買ってからJavaやりたいみたいな
つーことで報告乙りにきた

143 名前:デフォルトの名無しさん mailto:sage [2010/09/27(月) 23:55:02 ]
>>141
基本や応用は金にならない&就職に使えない
オラクルは金になる&就職に使える

だいたい、工業高校の学生なら
基本、応用の2つぐらい普通に持ってるだろ

144 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:01:23 ]
それは誤解だよ

145 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:06:29 ]
>>143
ダウト

146 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:08:32 ]
>>144
応用って前のソフト開発のことだろ?
俺の出身高校だとほとんどのやつが持ってたぞ

147 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:08:57 ]
#include "hoge.h" と #include <hoge.h> はどう違うんですか。

148 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:10:46 ]
うちの会社はどんな資格取っても手当なんか一切出ないぜ!
基本とソフ開とテクネとテクデとテクエンベとテクセキュ持ってるけどオラクルもシスコも無い俺は世間一般ではどのくらいの価値があるんだろうか

149 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:11:05 ]
>>146
簡単なのに合格率が低いのは工業高校の奴らが落ちまくってるからだろ

150 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:11:30 ]
応用 = 旧ソフ開 + マネジメント + ストラテジ
範囲は広がっている



151 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:12:03 ]
>>147
"hoge.h" はカレントディレクトリを探して、なければインクルードパスを探す
<hoge.h> はインクルードパスだけを探す

152 名前:デフォルトの名無しさん [2010/09/28(火) 00:13:08 ]
第ゼロ印象に影響はある
だが、その後に化けの皮が剥がれると詐欺呼ばわりで
人事部の人も始めからそれが頭にある

使えない奴がポイされるのは資格云々のせいじゃなく本人の中身
仮に実力があっても悪用されるとこれまた危険極まりないしな

153 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:13:12 ]
まあね

154 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:13:12 ]
>>147
ヘッダーファイルの検索の仕方が違う

155 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:26:52 ]
暗号くんへ
#if 1
{
on *dd;
dd = &buff[k*16];
u = *dd;
}
#else
for(i=0;i<16;i++)
u.m[i]=buff[i+k*16];
#endif
8ビット毎のコピーが32ビット毎のコピーになったぐらい
s5関数にも似たこと出来るとこがあったな
早くなったかは微妙

156 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:33:54 ]
OpenMPかTBB使いなされ

157 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:36:25 ]
300MBをごっそり1回でHDDからメモリに読むってどうやんの?

158 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:38:42 ]
freadで出来るでしょ

159 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:38:48 ]
300メガのリニアメモリ確保してfreadで300メガ読み込む
こうですか

160 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:40:14 ]
ファイルを1回でHDDから読んじまって後の操作はメモリ上だけでやった方が圧倒的に早くね?



161 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:41:57 ]
ファイルサイズ調べて、読み込む

162 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 00:42:46 ]
読む前に空きメモリサイズも調べとくこと

163 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 01:03:03 ]
読み込んだデータを暗号化すれば、コピーの回数が減るけど
暗号君の腕じゃ、動かなくなりそう

164 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 01:05:59 ]
>>149
会場にたどり着けない職業プログラマが多いからだよ。

165 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 01:21:08 ]
欠席はたしかに多いが統計資料では欠席を除いた合格率が出てる

166 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 01:27:57 ]
会場に行くのがそんなに大変なのか?
まるでハンター試験だな・・・

167 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 02:23:12 ]
暗号くんへ
{
on *dd;
dd = &buff[k*16];
for(i=0;i<4;i++){
c1.cc[i]=((c1.cc[i]+dd->cc[i])&f2)^c1.cc[(i+1)&0x3];
c2.cc[i]=((c2.cc[i]+dd->cc[i])&f2)^c2.cc[(i+1)&0x3];
}
}
コピーをなくしてみた。
s5の入り口と出口のコピー処理の影響が大きいみたいだよ。計4回やってるからね。

168 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 02:46:08 ]
暗号くんへ
s5で
cc->H->GGとコピーして、Hを使ってないじゃないか

169 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 03:00:53 ]
やっぱり、無駄なコピーがネックになってる

170 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 03:18:31 ]
勘違いしてたとこがあったけど、
for(i=0;i<16;i++)
GG.m[a[i]]=H.m[i];
ここの処理が重いみたいだ




171 名前:暗号 [2010/09/28(火) 05:22:25 ]
ttp://sky.geocities.jp/tcshacina/grs.c
この処理も何とかしてください。
20秒もかかります。高速化よろしくお願いします。
ご指摘の結果2秒位改善しました。無駄な処理があったんですね。
on *ddのコンパイル時に以下の警告が出ます。


172 名前:暗号 [2010/09/28(火) 05:25:34 ]
warning C4133 '=' : unsigned char * と 'on *'の間で型に互換性
がありません。

173 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 07:36:45 ]
病院に帰れ

174 名前:暗号 [2010/09/28(火) 07:43:40 ]
これって高速化出来ないですか?ポインタで。
でもポインタの使い方わかりません。
unsigned char *buf[32],buff[SIZE];

for(i=0;i<32;i++)
buf[i]=buff[i+32*k];

こんな感じで。
buf= &buff[32*k];


175 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 08:05:12 ]
>>174
出来ますよ。こんな感じで。
memcpy(buf, &buff[32*k], 32);


176 名前:暗号 [2010/09/28(火) 08:13:12 ]
bufからbuffにデータを戻す場合はどうすればいいですか?
for(i=0;i<32;i++)
buff[i+k*32]=buf[i];

177 名前:暗号 [2010/09/28(火) 08:16:17 ]
さらにこれは?

for(i=0;i<16;i++){
buf[i]^=d1[i];
buf[i+16]^=d2[i];
}

178 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 09:32:41 ]
高速化する価値がない。以上。

179 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 10:17:04 ]
昔のベーシックみたいな書き方しかわかんないみたいだから
とりあえず、入門書を読み直すところからはじめたら
答えを聞くばっかりじゃなく、自分で考えないと

180 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 10:23:59 ]
そろそろ専用スレ立ててくれ。いい加減鬱陶しい。



181 名前:元経験者 mailto:sage [2010/09/28(火) 11:40:45 ]
TURBO Cプログラミング入門という参考書は非常にタメになる。
こんなスレで聞くより一度読んでみたほうが良いよ。

182 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 12:26:29 ]
暗号化の簡単な例を教えてください。

183 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 12:29:41 ]
aをbに変換
bをcに変換

helloを暗号化するとifmmpになる

184 名前:183 mailto:sage [2010/09/28(火) 12:30:39 ]
続き
ifmmpをbase64でエンコード
エンコードした文字列もなんかの文字に変換
そして更にエンコード
そして更に(ry

185 名前:デフォルトの名無しさん [2010/09/28(火) 12:47:41 ]
自分なりに勉強してたつもりなんですが、今読むならどんな本がいいのでしょうね。
fread/fwriteでこんなに性能が変わるなんて知りませんでした。
環境によってスピードが変わるんでしょうか。キャッシュの性能を除いた
単一のベンチマークとかの性能比較の方法はあるのでしょうか。
プログラムはポインタとかドレスとか出てくるともうわかりません。
わかる範囲でプログラムしてます。目標はオリジナル暗号ソフトです。

186 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 12:49:18 ]
>プログラムはポインタとかドレスとか出てくるともうわかりません。

性能とか言ってる場合かよ

187 名前:デフォルトの名無しさん [2010/09/28(火) 12:55:10 ]
ストリーム暗号は簡単ですよ。乱数を発生させてXORするだけ。
問題は周期が短くならないようにすること。統計的な分布も重要。
最近ではブロック暗号でAESが標準になってる。ブロック暗号からも
ストリーム暗号は作れますが、今目指してるのはストリーム暗号の方。


188 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:08:53 ]
>fread/fwriteでこんなに性能が変わるなんて知りませんでした。
>プログラムはポインタとかドレスとか出てくるともうわかりません。

Cやる気ないなら暗号スレ行けよ…

■暗号技術【ROUNDsurea】■
hibari.2ch.net/test/read.cgi/tech/1180280982/

189 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:12:43 ]
暗号アルゴリズムの開発じゃなくて、実装だからここでいいだろ。
Cが分らんと言ってる奴を暗号技術に誘導すんな。

190 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:13:01 ]
>>185
>目標はオリジナル暗号ソフトです。

いや、だから、まず概念としての暗号の基礎を学べよ。
そうすりゃオリジナル暗号なんてどんだけバカげたことかわかるから。



191 名前:デフォルトの名無しさん [2010/09/28(火) 13:13:50 ]
Cやる気あります。参考書知ってたら教えてください。
300Mを6秒で処理できるようになりました。

192 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:16:35 ]
>>189
開発しようとしてね?

193 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:21:41 ]
なんだたったの6秒かしょぼいな

194 名前:デフォルトの名無しさん [2010/09/28(火) 13:24:16 ]
暗号は大学院で研究してました。楕円曲線とか誤り訂正符号を使った
暗号とか。でもまだ一度も自分で作ったアプリがないので挑戦して
いるところなのです。広く使われているアルゴリズムでないと意味が
ないかもしれないですが、とりあえずいいのです。
開発環境はCygwinのGCCとvisual Studio 2010ですがコマンドライン
だと使い方がわからなくなりそうなのでVC++みたいにウインドウズ
ソフトにしようかと考えてます。

195 名前:デフォルトの名無しさん [2010/09/28(火) 13:26:36 ]
もともと20秒かかってました。

196 名前:デフォルトの名無しさん [2010/09/28(火) 13:28:06 ]
ソース見ますか?

197 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:30:58 ]
暗号のできる中学生くらいなのかとおもってた。

198 名前:デフォルトの名無しさん [2010/09/28(火) 13:39:30 ]
6秒ってのはキャッシュのせいかもしれない。

199 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:44:09 ]
ひとつアドバイスさせてもらうと、今の段階でいたずらに高速化を目指すより
アルゴリズム上の無駄を推敲して正しい設計、正しい実装を目指した方がいいと思うぞ。
その方が結果的に速度が上がるように思う。

参考書
「UNIXという考え方―その設計思想と哲学 」
出版社: オーム社 (2001/02)
ISBN-10: 4274064069
ISBN-13: 978-4274064067


200 名前:デフォルトの名無しさん [2010/09/28(火) 13:50:26 ]
すいませんやっぱりソースはお見せできません。



201 名前:デフォルトの名無しさん [2010/09/28(火) 13:54:29 ]
アルゴリズムの基本構造は有限体上の行列演算です。
Goppa符号のシンドロームをOFBモードでフィードバックさせて
乱数を発生させます。安全性を実験的に確認している途中です。
演算が論理演算しか使わない単純なものなのに思ったほど速度が
出なかったのが気になりました。

202 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:56:02 ]
>>201
コードの書き方だろJK

203 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 13:57:16 ]
安全性を検証するのに速度は関係ないだろう
速度なんか気にしてるといつまでも検証の方が進まないぞ
やるべきことをやれよ

204 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 14:08:15 ]
>>201
暗号化アルゴリズムとコーディング(のアルゴリズム)を混同していると思われ

205 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 14:19:10 ]
ポインタも使ってねーで速度でないとか、笑う

206 名前:デフォルトの名無しさん [2010/09/28(火) 15:24:46 ]
プログラムをビルドした日時をプログラム内で取得したいんだけど
格好いい方法ありますか?

207 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 15:25:32 ]



208 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 15:31:31 ]
$ cat foo.c
const char * BuildDate = BUILD_DATE;

$ gcc -S foo.c -DBUILD_DATE='"'"`date`"'"'

$ cat foo.s
.file "foo.c"
.section .rdata,"dr"
LC0:
.ascii "Tue Sep 28 15:31:02 2010\0"
.globl _BuildDate
.data
.align 4
_BuildDate:
.long LC0

209 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 15:32:28 ]
格好よくはないな

210 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 15:32:39 ]
__DATE__と __FILE__じゃだめなのか?



211 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 15:33:22 ]
__FILE__じゃねえ__TIME__だよ

212 名前:デフォルトの名無しさん [2010/09/28(火) 16:46:22 ]
行列の要素の入れ替えで質問です。
G[16][16][2]という行列があったとき、

*temp=G[0][2][0]
G[0][2][0]=G[9][5][0]
G[9][5][0]=*temp

で要素の入れ替えは出来ますか?

213 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 16:49:55 ]
「temp」だけでできるとエスパー

214 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 16:50:01 ]
Gとtempの型次第。

215 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 16:57:00 ]
tempが有効なポインタを指していなければアウト

216 名前:デフォルトの名無しさん [2010/09/28(火) 17:02:43 ]
じかにやる方法しかわかりません。

temp[0]=G[0][2][0];
temp[1]=G[0][2][1];
G[0][2][0]=G[9][5][0];
G[0][2][1]=G[9][5][1];
G[9][5][0]=temp[0];
G[9][5][1]=temp[1];

何かいい方法があったら教えてください。

217 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:11:17 ]
いやだから「G」と「temp」の型を書けっての

218 名前:デフォルトの名無しさん [2010/09/28(火) 17:16:11 ]
unsigned long long int です。

219 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:17:51 ]
unsigned long long int G;
unsigned long long int temp;
だというのか?なわけないだろ


220 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:20:04 ]
行単位、列単位でコピーしたいってことだろ



221 名前:デフォルトの名無しさん [2010/09/28(火) 17:24:28 ]
そうです。

unsigned long long int G[16][16][2],temp[2];

ポインタが使えると思うのですがよくわかりません。

222 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:34:12 ]
>>216みたいに直にやるか、ループで回すか、memcpy使うか

223 名前:デフォルトの名無しさん [2010/09/28(火) 17:35:51 ]
一番早い方法が知りたいです。

224 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:36:45 ]
swap 関数作ってインライン指定だけでいいだろ

225 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:38:46 ]
memcpy()使うほどのサイズじゃないし、>216で充分だよ。
C++ならstd::swapを使えって話になるけどCだから作るまでもない。

226 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:42:39 ]
void swapUnsigndLongLong2(unsigned long long * a, unsigned long long * b)
{
struct {unsigned long long x, y;} tmp;
tmp.x = a[0];
tmp.y = a[1];
a[0] = b[0];
a[1] = b[1];
b[0] = tmp.x;
b[1] = tmp.y;
}
swap(& G[0][2], & G[9][5]);

227 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 17:45:53 ]
// さっきはstaticを付け忘れたけど、今時のコンパイラならstaticをつけておけばinline展開してくれるし
// 他のソースに悪影響を及ぼさないためにもつけたほうがいい。
static void swapUnsigndLongLong2(unsigned long long * a, unsigned long long * b)
{
// c89だとエラーが出るからその場合は>226で
struct {unsigned long long x, y;} tmp = {a[0], a[1]};
a[0] = b[0];
a[1] = b[1];
b[0] = tmp.x;
b[1] = tmp.y;
}
// ついでに関数名も間違えてやんのw
swapUnsignedLongLong2(& G[0][2], & G[9][5]);

228 名前:デフォルトの名無しさん [2010/09/28(火) 17:55:50 ]
じかにやってみます。

229 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:33:34 ]
途中までの書き直したソース貼ってくれれば更にアドバイスしやすいかも

230 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 18:45:13 ]
[0]を何度もコピーしてるのが無駄ね



231 名前:デフォルトの名無しさん [2010/09/28(火) 18:50:16 ]
誰のソースですか?

232 名前:デフォルトの名無しさん [2010/09/28(火) 19:08:17 ]
ストリーム暗号の周期を測定しようとしたらすごいバグが見つかった!
直して今のところ2^32までの周期はない事がわかったのですがどの位
なら安全といえますか?

233 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:10:20 ]
>>232
10^39

234 名前:デフォルトの名無しさん [2010/09/28(火) 19:14:17 ]
実験的な確かめ方がわかりません。2^128位ですか。
どなたかアドバイスお願いします。

235 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:17:06 ]


236 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:17:18 ]
??

237 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:19:00 ]
とりあえず暗号野郎はトリ付けろ

238 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:23:33 ]
>>234
周期のあるのは予想可能性という点で問題あるので暗号には使えない。

239 名前:デフォルトの名無しさん [2010/09/28(火) 19:26:52 ]
実験では実際に計算させて周期がないかどうかをしらべています。
しかし大きな周期は無理なので確認方法がわかる人がいたらお願いします。
計算量的な安全性は証明できても実装した場合に安全かどうかは別なので。

240 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:30:01 ]
>>239
ほんとに知りたいの?
この人に直接問い合わせりゃいいじゃん。

【数学】円周率5兆ケタまで計算 パソコンを百数十万円かけて自作/長野の会社員
toki.2ch.net/test/read.cgi/scienceplus/1283004092/



241 名前:デフォルトの名無しさん [2010/09/28(火) 19:38:51 ]
メルセンヌツイスターは安全じゃないんですか?

242 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:46:00 ]
MTは暗号学的には安全じゃないので
暗号に使うなら暗号学的に安全な別なの使ってね、
って公式にアナウンスされとるがな

243 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:46:21 ]
>>239
一周期回らせようとしたら膨大なデータをやりとりしない限り無理じゃないの

244 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:50:51 ]
>>243
はいはい、基礎がわかってないやつはすっこんでろや

245 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 19:56:47 ]
>>241
2,3桁見たらもう次は予測可能じゃん、暗号学的には。

246 名前:デフォルトの名無しさん [2010/09/28(火) 19:59:49 ]
実計算で確認するのは無理だと思います。
アルゴリズム的に周期がない事を証明しないといけないかもしれません。
ブロック暗号のOFBモードに似ているのでそういう方法で安全性を
保障するのかもしれません。OFBモードでも周期はあるはずなんですけどもね。

247 名前:デフォルトの名無しさん [2010/09/28(火) 20:03:11 ]
計算量的には次ビット予測不可能性っていいますね。
公開鍵暗号の場合ですけど。鍵をかませれば出力から単純には
次の値がわからなくすることができると思います。

248 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:04:39 ]
>>246
乱数発生させたいならカウンタ値をハッシュしてもいいじゃね?
その代わり種となるカウンタ値はばれたら大変。

249 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:05:24 ]
値の出現確率が一様になるようにダミーを混ぜる
乱数でスワップを繰り返してシャッフル
実はこれだけで完全な暗号になる

250 名前:デフォルトの名無しさん [2010/09/28(火) 20:09:41 ]
統計的テストでは一様分布になってます。バイト単位の出現率ですが。
CTRモードのことですかね>カウンタ



251 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:15:03 ]
でも結局突きつめてくとAESとかRSAの劣化コピーみたいなアルゴリズムに落ち着くんだよね。
で、結局、既存のアルゴリズムがどんだけよく考えられているかを知る、と。

252 名前:デフォルトの名無しさん [2010/09/28(火) 20:23:29 ]
一応数論とは違う問題に基づいてはいるんですが。新型暗号

253 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:26:42 ]
ポインタすら分からない奴がスレチもほどほどにしろよ

254 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:29:38 ]
>>252
新たな暗号アルゴリズムを作りたいのか?
プログラムのコーディングが上達したいのか?

新たな暗号アルゴリズムを作りたいのならこのスレの住人じゃ検証する力もないし、話の内容がそもそもスレ違い。
それに実証コードを書きたいなら自分でやらずともコーディングのプロに頼めばいい(OpenSSHのメンバーなど)
プログラムのコーディングが上達したいのなら暗号のことは一旦脇に置いてコーディングの勉強をするべき。

255 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:30:35 ]
暗号数学とプログラムはへつもんだから互いにいちゃモンつけてもしゃあないでしょ。

256 名前:デフォルトの名無しさん [2010/09/28(火) 20:33:21 ]
新型を質の良いプログラムで実装したいです。
資金がないのでプロには頼めません。
コーディングの勉強をします。

257 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:41:55 ]
>>256
バカなの?
質の悪い手製の新型暗号を、たとえ質のいい実装したってクズはクズだろ。
ゴミをきれいなラッピングでプレゼント包装するようなもんだ。

ホントに手製の新型暗号に自信があるなら論文でも書いて学会に送りなよ。
どんだけ強力な暗号なのか世界中の数学者、暗号学者が検証してくれるから。
実装はその暗号の有用性が実証された後で充分。
有効な暗号だと認定されりゃ、世界のだれかオープンソースの住人(実装の達人)が実装してくれるよ、タダで。
もしくは企業が権利を買い上げてくれるかもな。


結局、「新型暗号」なんて適当なこと言って、
スレをひっかきまわしたいだけだろ?

258 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:46:43 ]
研究段階なら質が悪かろうがとりあえず動けば良いんだよ
質の良いプログラムとか考えるのは後の話

259 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:47:42 ]
>>257
おいおい、暗号さんの才能に嫉妬すんなよw

260 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 20:50:23 ]
アルゴリズムが完成してるなら、それがプロにも解読出来ないか検証すればいい。今使われてる暗号のように。
プログラムに使おうとすんな



261 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:00:11 ]
趣味で実装してんじゃないの?
そんなにピリピリする必要はないだろうに

262 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:00:32 ]
入れ食い状態の釣り堀か、それとも自分で餌撒いて自分で食い付いてんのか

263 名前:デフォルトの名無しさん [2010/09/28(火) 21:07:58 ]
趣味ですw
もう寝ます

264 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:08:58 ]
C使ってるのにデータをレジストリに使う奴は情弱

265 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:14:54 ]
ぷぷ

266 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:37:05 ]
>>264
巣に戻れ

267 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 21:48:57 ]
いいよ

268 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:11:43 ]
>>258
研究段階(暗号の)ならプログラムで実際に動かす必要なんてないけどな。

269 名前:デフォルトの名無しさん [2010/09/28(火) 23:23:04 ]
それはない

270 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:25:33 ]
何のスレだっけ?思い出せ低脳。



271 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:29:24 ]
僕高脳。

272 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:46:53 ]
experimentは一応必要じゃないの

273 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:48:26 ]
lain

274 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:48:46 ]
違うなw

275 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:50:33 ]
int main(void)
{

276 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:53:11 ]
ん?

277 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:54:46 ]
return 0;
}

278 名前:デフォルトの名無しさん mailto:sage [2010/09/28(火) 23:55:50 ]
return -1;

279 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 01:04:12 ]
エラーがでるらしいよ

280 名前:デフォルトの名無しさん [2010/09/29(水) 01:05:57 ]
エラーが出るなら仕方ない



281 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 01:55:52 ]
ここでffmpegの質問してよいですか?

282 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 02:07:54 ]
いいえ

283 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 03:19:18 ]
メモリクリーナーみたいにタスクマネージャで表示されるメモリにゴミがあったら開放するやり方ってどうすればいい?
calloc失敗するまで読み込んで失敗したら終了したら一応はその動作するけど外道だし

int *p;
while (1) {
p = calloc
失敗したらbreak
}

これだとexe終了処理で開放されてるけどfreeしてないし
freeするにしてもwhileの中でやったら無限ループになるし
外でやっても最後のpしかfreeされないしで思いつかない

int i, count, **p
*p = calloc
while (1) {
p = calloc
失敗したらbreak
count++;
}
for(i=0;i<count;i++) {
free(p)
}
free(*p)

こんな感じに出来ない?


284 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 03:25:15 ]
ひどすぎる

285 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 04:12:23 ]
p[0]を確保してp[0][count]を確保
p[0][i]を開放してp[0]を開放って感じか?


286 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 04:29:15 ]
ソースコードで発見した奇妙なコメント集
www.webcreatorbox.com/webinfo/comments-source-code/

287 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 06:24:16 ]
以下のコードを実行するとiが66を超えたところで、lにマイナスの値が代入されるのはなぜですか?

int i = 0;
for (; i <= 100; i++) {
long l = i * 33000000;
LOGI("i=%d l=%d", i, l);
}


288 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 06:34:58 ]
>>287
オーバーフロー
32bit環境ではlongは4Byte(-2147483648〜2147483647)

289 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 06:37:46 ]
オーバーフローが疑わしい

log2(65 * 33000000) ≒ 30.998
log2(66 * 33000000) ≒ 31.020

290 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 08:12:24 ]
C言語の本で

配列内の文字は、終端ナル文字の直前まで出力される、精度が指定されない
場合や、精度が配列の大きさより大きい場合、配列は必ずナル文字を含んで
なければならない。
 ↑
とあるけどこれの意味がわかりません・・どういうことですか?




291 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 08:13:40 ]
指定の精度が配列より小さい場合、ナル文字は含まなくてもいいのですか?
ナル文字0はかならず終端に容量をとって含まれるものでしょう?

292 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 08:26:14 ]
>>290
それはprintf()系の話だと思うが、説明がやや的外れだと思う。
例えばフォーマット指定で%.10sなどとした場合、10バイトを超えて出力されることがないことが保証されているに過ぎない。
従って、通常は必ずナルターミネートされていないといけない。

293 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 08:42:44 ]
// まぁ、こういうことだ。
char buf[] = "abcdefghijklmn";
printf("%s\n", buf);
// 10バイトしか出力されない(%10sとの違いに注意)
printf("%.10s\n", buf):
// 長さはナル文字を含まないが、配列のサイズには含まれる。
printf("%u, %u\n", (unsigned) strlen(buf), (unsigned) sizeof(buf));

294 名前:デフォルトの名無しさん [2010/09/29(水) 08:59:30 ]
ところでおまいらプリプロセッサなに使ってる?
stdio.h使ってるんだけどそろそろ変えようかなって思ってるんだよね。
あれ?プリプロセスだっけ
まぁなんでめいいや

295 名前:デフォルトの名無しさん [2010/09/29(水) 09:03:49 ]
Visual Studioの最適化オプションって何が一番いいですか?

296 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 09:07:15 ]
>>294
邪道は入門篇の対象外です。

>>295
VisualStudioのスレへどうぞ。

297 名前:デフォルトの名無しさん [2010/09/29(水) 09:19:04 ]
>>292
C言語の入門書読んでるけど3Pに一か所くらい、どういう意味?って
感じの説明があるんだが・・・

298 名前:デフォルトの名無しさん [2010/09/29(水) 09:20:47 ]
>>292
ナルは必ず要領を食うってことですか?


299 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 10:52:17 ]
>>297
その塵本は捨てて、別な本を買った方がよい。


300 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 11:34:53 ]
クラス内の関数ポインタの動的確保ってどうするの?
例えば
int (A::*test)();
っていう関数ポインタがあったとして、こいつを動的確保する方法です。

newに渡しても、コンパイルエラーになったり、
typedefしようとしても、戻り値の後ろの空白のせいでコンパイルエラーになったり
してしまいます。

正しいtypedefと動的確保について教えてください。



301 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 12:31:14 ]
いやまて何を動的確保する気だよwwww

typedefは普通に
typedef int (A::*test)();
だが

302 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 12:35:19 ]
>>300,301
消えろ


303 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 12:40:06 ]
>>301
ありがとうございます。
途中で関数ポインタの配列を用意しないといけない状況になってるんですが、
動的確保できないんですかねぇ。

304 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 12:52:08 ]
>>292
strncpy() の指示数と被代入変数の器の大きさとか?

上限5文字で切りたい場合 器は \0 を含めて 6個必要
(strncpyでは、さらに上限いっぱいの場合には 明示的に \0 代入が欲しい)

char buf[6];
strncpy(buf, 5, "123456789abcd");

 buf[0] = '1'
 buf[1] = '2'
 buf[2] = '3'
 buf[3] = '4'
 buf[4] = '5'
 buf[5] = <不定>

305 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 12:53:25 ]
不定(笑)

306 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 12:58:52 ]
>>302
ごめんCスレだと気付かなかった
これで終わると思うので勘弁してください
次は最初から誘導しようと思います

>>303
ならそういえ
typedef int (A::*test)();
test *p2 = new test[10];


307 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 13:06:40 ]
>>306
ありがとうございます!出来ました!
C++スレ別にあったんですね。次からは気をつけます!

308 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 13:29:19 ]
>>306
なんでこのスレで答えるの?
死ねば!

309 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 13:34:31 ]
CとC++スレの区別もつかないヤツって、コード書いててもミスばっかりなんだろうな

310 名前:デフォルトの名無しさん [2010/09/29(水) 13:43:12 ]
GCCとVisualStudioでアセンブラのソースを見たんですが、小さい方が
早いですか?



311 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 13:44:35 ]
>>310
どうしてそのような思考に至ったのか書け。
かかねえなら死ね。

312 名前:デフォルトの名無しさん [2010/09/29(水) 13:49:34 ]
ステップ数が少ない方が実行速度が速いのかなと思ったので。
後いろいろ最適化かけてみて平均的に早い(どちらも大して変わらない)
方を選ぼうと思ったので聞いてみることにしました。

313 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 13:59:58 ]
ファイルから複素行列を読み込んで
complex A[N][N];
で宣言した2次元配列に格納したいと考えてます。
例えば、N=3のとき、
ファイルには実部と虚部がスペース区切りで以下のように並んでいる場合、
(実部と虚部で1要素)
どのようにして読み込めばいいでしょうか。

実部 虚部 実部 虚部 実部 虚部
実部 虚部 実部 虚部 実部 虚部
実部 虚部 実部 虚部 実部 虚部

もちろんエラーが出るのですが、
感覚的には以下のようにして読み込みたいです。

for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
fscanf(fp, "%lf %lf", creal(matrix[i][j]), cimag(matrix[i][j]));
}
}

314 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 14:01:16 ]
ベンチマークをひとにやらせるな。


315 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 14:04:31 ]
>>313
double x, y;
fscanf(fp, "%lf %lf", &x, &y);
matrix[i][j] = complex(x, y);

316 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 14:08:04 ]
ここの先生方の力で初心者向けC言語講座サイトを作成していただけませんか?
もちろんアフィリエイトは踏ませていただきます

317 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 14:17:51 ]
>>312
感覚的には悪くない発想だが、そうでない例もあるので保証にはならない
例えばループアンロールは命令量を増大させるが、
適切に使用すれば性能は上がる

318 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 14:29:58 ]
>>315
ありがとうございます。

double x, y;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
fscanf(fp, "%lf %lf", x, y);
matrix[i][j] = complex(x, y);
}
}

とすると
error: expected expression before ‘__complex__’
と出てしまったので、

complex x, y;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
fscanf(fp, "%lf %lf", x, y);
matrix[i][j] = x + y * I;
}
}

とすると、コンパイルは通るのですが
セグメントエラーになってしまいました;

どうすればいいでしょうか?

319 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 15:31:35 ]
>>318
&x, &y

320 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 15:47:27 ]
>>318
*x,*y



321 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 15:52:15 ]
>>318
scanfの使い方を間違っている。%lfならdoubleへのポインタを渡す。

とにかくなんでもまずはhelpを読むんだ。unix系ならman、WinならMSDN。
次にgoogle先生でコードを探してそれをパクる。
他人が書いたライブラリを使おうってのに説明なしなんてあまりにも無茶すぎる。

で、complexってstd::complex?ならそれはC++。

322 名前:デフォルトの名無しさん [2010/09/29(水) 15:55:37 ]
Cで必要最低限の機能を持った簡単なシューティングを作る場合、
コードは何行で収まりますか?

323 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 15:56:22 ]
>>322
改行しなきゃ一行だろ

324 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 15:58:53 ]
>>323
ぷぷぷ、だよなw

325 名前:デフォルトの名無しさん [2010/09/29(水) 16:04:56 ]
Cで必要最低限の機能を持った簡単なシューティングを作る場合、 コードは何行で収まりますか?

326 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:04:58 ]
規格上、一行あたりの文字数には制限があったはずだが
C89で511文字とかだっけ?

327 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:06:01 ]
つまんね

328 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:07:40 ]
>>323=>>324自演乙

329 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:10:09 ]
>>325その質問には意味がない。
それと二度と書きこまないように。

330 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:28:47 ]
またおまえかC#スレに変えれ



331 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:33:42 ]
※このスレは中級者見習いが初心者を罵倒するスレです

332 名前:デフォルトの名無しさん [2010/09/29(水) 16:47:53 ]
左辺値って何ですか
ググッてもよくわからないんですが

333 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:52:00 ]
>>210
駄目だが、ヒントにはなった。ありがとう。

334 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 16:56:01 ]
>>332
代入演算子の左辺に現れることのできる値のことです
例えば x = 3 の x のことです

335 名前:デフォルトの名無しさん [2010/09/29(水) 18:28:20 ]
OpenSSLのファイル暗号化の秘密鍵ってどうやって生成されてるの?
ファイルごとに毎回変わってるの?

336 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:31:52 ]
コイツいつまで粘着するの?

337 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:33:41 ]
>>336
お前が粘着してんだろ

338 名前:デフォルトの名無しさん [2010/09/29(水) 18:41:17 ]
公開鍵の生成は確率的暗号化してるってわかるけど、(OAEP)
秘密鍵暗号の場合は鍵をどう使っているのか不思議。
まさかパスワード?

339 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:54:36 ]
スレ違い

340 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 18:56:24 ]
>>338は、発言によりLinuxもTeraTermを使ったこともないことがバレたようです。



341 名前:332 [2010/09/29(水) 19:02:25 ]
>>334
ありがとうございます
もう一つ質問なんですが(x=y)=6はなぜだめなんでしょうか


342 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:14:24 ]
>>341
代入式は左辺値ではないからです
左辺値でないので x=y は = の左側に来ることはできません

343 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:15:14 ]
>>338
このスレは馬鹿ばっかりだから、聞くだけ無駄

344 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:16:03 ]
(x = y) はyを代入したxの値として評価されるから

345 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:17:17 ]
>>343
だな。

346 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:17:26 ]
両方に代入したきゃ()つけないで、x=y=6でいいじゃん

347 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:18:37 ]
>>342
それは違うx=yは左辺値だよ、人に教える前に自分が勉強しろ

348 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:18:45 ]
追い払おうとしてるのか自演なのかよく分からん

349 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:20:09 ]
”代入演算子の左辺に現れること”が出来ないから左辺値じゃないんじゃねw

350 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:20:23 ]
>>347
そだね、()で囲むのが問題、それによって左辺値でなくなる。



351 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:20:32 ]
>>347
わざわざ調べて書いたから間違いない
An assignment expression has the value of the left operand after the assignment, but is not an lvalue.
って書いてあった

352 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:21:06 ]
普通に考えて分解すると
x=y;
x=1;
の順で計算されてるから

353 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:21:17 ]
>>349
馬鹿はどっかいけ!

354 名前:デフォルトの名無しさん [2010/09/29(水) 19:34:35 ]
>>350
では (x) = 6; はダメなのか?

# 左辺値という言葉の「左」は確かに代入に由来するようだが
# 今となっては左辺値であっても代入はできないものがゴロゴロある

355 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:35:30 ]
あげんな

356 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 19:40:43 ]
x=yという式の値は右辺値だろw

357 名前:デフォルトの名無しさん [2010/09/29(水) 19:59:09 ]
3秒間に何回暗号化できるかの実験をしたいのですが、時間を制限して
プログラムを実行するいい方法はありませんか。因みにOpenSSLでは、

openssl speed des aes camellia

で3秒間に処理できるブロック数が表示されます。

358 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:01:16 ]
3秒あたり何回回ったかがわかればいいんじゃないの?

359 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:03:25 ]
暗号くんのレスをすべてつなげてある復号化アルゴリズムにかけると徳川埋蔵金の在処を示す文字列になる

360 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:05:13 ]
暗号中学生はいつになったら消えるの?



361 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:11:42 ]
スルー徹底すればすぐにでも

362 名前:デフォルトの名無しさん [2010/09/29(水) 20:14:50 ]
3秒でプログラムを停止させる方法が知りたいです。

363 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:16:09 ]
alarm(3);

364 名前:デフォルトの名無しさん [2010/09/29(水) 20:21:09 ]
エラーが出ます。

未解決のシンボルalarmが関数mainで参照されました。

manで調べても出てきません。何回ループしたかも表示させたいです。

365 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:23:42 ]
1万回処理するのにどんくらい時間がかかるか調べろよ

366 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:24:11 ]
暗号の前にCの基礎を勉強しろ馬鹿。やる気ないならやめちまえ

367 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:26:05 ]
#include <time.h>

int main(void)
{
  time_t start_time, now_time;
  time(&start_time);
  while(1)
  {
    time(&now_time);
    if((now_time - start_time) >= 3){ break; }
  }
  return 0;
}

368 名前:デフォルトの名無しさん [2010/09/29(水) 20:27:58 ]
9000000回で13秒。
カメリアは3秒。

369 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:28:35 ]
それだと、timeの実行時間が付加されるような

370 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:35:18 ]
それは仕方なくね。
while内を2倍にすれば差でタイムがわかるとおもう



371 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 20:38:42 ]
> 9000000回で13秒
?=9000000*3/13

372 名前:低脳基地 mailto:sage [2010/09/29(水) 21:01:53 ]
お前ら何を、右辺値とか左辺値とか分け解らん言葉使っているんだ
正しく右辺オブジェクト、左辺オブジェクトと使えよw
(x=y)=6の (x=y)の結果が名前付の左辺オブジェクトを返さないからだろ
何が帰ってくるのかって?
x=0、y=1
した場合(x=y)で戻ってくるのは名前付オブジェクトxではなく,xが管理しているの数字の1
お前ら1=6って平気でやって何でだって大騒ぎしてるんだろw
int a,b
a=bとした時にオブジェクトaとオブジェクトbが同一になるのかよ。それが管理していの値が同じになるだけだろ
管理しているもの値は同じになるが、オブジェクトが同じになるわけじゃない。同じになるならアドレスも同じになるよな。
よくあるパターンのif( (c = Fxxx()) == XXX ){}の(c = xxx())でもそう
で==の右左の条件って何か教えて
struct neko{};、struct neko a、 struct neko b、a == b、何を比較してるんだこれ

373 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:03:58 ]
memcpy?

374 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:07:31 ]
memcmp?の方だった

375 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 21:34:46 ]
実際にtime()程度の精度のタイマーで時間を測りたいなら、
>367のwhileの前に一旦変化点を見定めておかないと誤差が平均0.5secに拡大してしまうよ。

376 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 22:21:51 ]
memcpyってどう使うの?

377 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 22:28:33 ]
struct neko{};、struct neko a、 struct neko b、a = b

378 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 23:11:45 ]
>>376
代入演算子=の関数版がmemcpy
struct neko{};、struct neko a、 struct neko b、a = b
ならmemcpy( &a, &b, sizeof(a) )

379 名前:デフォルトの名無しさん mailto:sage [2010/09/29(水) 23:26:54 ]
>>376
>378の説明では不充分だけど、使わなければならないケースは入門レベルを超えるので使えなくても大丈夫。

380 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 02:54:26 ]
>>319-321
double x, y;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
fscanf(fp, "%lf %lf", &x, &y);
matrix[i][j] = x + y * I;
}
}

遅くなりましたが、これでできました。
本当にありがとうございました



381 名前:デフォルトの名無しさん [2010/09/30(木) 03:05:22 ]
CygwinのGCCで作ったバイナリをWINのコンソールで実行させるにはどうしたら
いいですか?GCCで作ったバイナリの方が早かったのでWIN上での動作確認を
したいです。どなたか教えてください。

382 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 03:19:35 ]
>>381
MinGWを入れるべし

383 名前:デフォルトの名無しさん [2010/09/30(木) 04:09:24 ]
インストールしてる間にフリーズして出来ない。
CygwinはDOSのプロンプトから実行できないけどMinGWは出来るんですか?

384 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 04:13:27 ]
できます
というかMSVCRT.DLLを使ってるからWindowsでそのまま実行できるはず

385 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 04:14:22 ]
入れるんだったらここのwebdlがいいよ

tdm-gcc.tdragon.net/download

386 名前:デフォルトの名無しさん [2010/09/30(木) 04:28:00 ]
emmintrin.h
がないってエラーが出ます。

387 名前:デフォルトの名無しさん [2010/09/30(木) 05:05:06 ]
c:\mingw32\bin\../lib/gcc/mingw32/4.5.1/include/emmintrin.h:32:3: error: #error
"SSE2 instruction set not enabled"

388 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 07:26:55 ]
ふはぁ

389 名前:デフォルトの名無しさん [2010/09/30(木) 07:49:20 ]
mingw32のコンパイラのバージョンは4.5.1だけどCygwinのバージョン
は4.3.4です。GCCのオプションで
gcc -O3 -ftree-vectorize を付けたとき、Cygwinのときはループの
ベクトル化をしてくれますがmingw32のときは失敗してベクトル化
してくれません。どうすればいいですか。

390 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 08:03:20 ]
>>389
cygwinで-fno-cygwinだとどう?

つーか、入門篇で扱う内容じゃないから後はCygwin/Mingwスレで。



391 名前:デフォルトの名無しさん [2010/09/30(木) 08:16:29 ]
-fno-cygwin
GCCでそんなオプションありませんでした。
Cygwinスレも見つかりません。

392 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 08:29:03 ]
>GCCでそんなオプションありませんでした。
どんなエラーが出た? それと、gcc --versionした結果は?

>Cygwinスレも見つかりません。
どこ探しているの? 馬鹿なの?
Cygwin + MinGW + GCC 相談室 Part 5
hibari.2ch.net/test/read.cgi/tech/1269400706/

393 名前:デフォルトの名無しさん [2010/09/30(木) 08:35:52 ]
cc1.exe: error: unrecognized command line option "-fno-cygwin"
gcc (tdm-1) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

394 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 09:01:37 ]
fno-cygwinに似たオプションがあるからそれだね

395 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 10:06:13 ]
暗号くんは難しい?計算式は理解できるけど
簡単なことは理解できないんだね。
英語のエラーメッセージもまともに読まないって感じか?

396 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 10:15:50 ]
>>395
そうです

397 名前:デフォルトの名無しさん [2010/09/30(木) 12:12:21 ]
codepad.org/RJ3J8hjW
数独を解答するプログラムを作りましたがなぜかうまくいきません
原因を教えていただけないでしょうか?
0 0 3 0 0 0 0 0 0
0 9 0 0 0 0 2 0 0
4 0 0 5 7 8 0 1 0
0 8 2 9 0 0 4 0 3
0 0 5 0 0 0 0 0 7
0 0 1 0 0 0 0 0 8
8 0 0 6 2 5 0 9 0
0 0 0 4 0 0 0 0 0
0 6 0 0 0 0 8 0 0


398 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 12:24:05 ]
>>394
-mno-cygwin ではどうでしょうかね。

399 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 12:37:06 ]
>>398
移動したようだから相手にすんな。

>>397
コード追うのが面倒なんだけど、再帰を使わずにどうやってバックトラックしているの?

400 名前:397 mailto:sage [2010/09/30(木) 12:48:23 ]
もしブロック内または縦横に同じ数がなければmasu[x]を確定しnext(y,x+1)に進み
先で不具合があったらmasu[x]まで戻って次の数に進むようにしようとしたのですが
うまくいきません



401 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 14:24:04 ]
>>400
コード汚すぎ
どうして再帰呼び出しでやらないの?
配列に2次元にすりゃいいのに。。。

402 名前:397 mailto:sage [2010/09/30(木) 14:41:58 ]
>>401
今月の頭から覚え始めたばかりなのでコードの汚さはご容赦ください
再帰呼び出しについて調べてみることにします

403 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 14:49:53 ]
数独ってどうやんのが一番効率いいんかね
力任せに再帰していったらいつ終わるかわからんぜ

404 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 14:52:07 ]
一番穴の少ない行または列から探し始めれば少しはマシなんじゃないかな

405 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 14:54:16 ]
>>403
最近のCPUを舐めちゃいかんよ。真面目にアルゴリズムを考えるなくても、
単純なバックトラックだけで実装しても充分実用的な時間で解ける。

406 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:11:45 ]
すみません。

char*型の文字列をTCHAR*型の文字列に変換する関数を作成したのですが、
少なくともUNICORD実装環境では4文字('\0'含む)までしか正しく変換出来ません。

問題点について考察したのですが、良く分からないのでご教授頂けたらと思います。

TCHAR* char_to_tchar(const char *pszChar){
long nLen;

TCHAR *pszTchar;

/*入力がNULLだった場合*/
if(pszChar==NULL){
return NULL;
}

/*文字数の取得*/
for(nLen=0;pszChar[nLen]!='\0' && nLen>=0;nLen++);
nLen++;

/*メモリの確保*/
pszTchar=(TCHAR*)malloc(sizeof(TCHAR)*(nLen+1));

/*メモリの確保に失敗した場合*/
if(pszTchar==NULL){
return NULL;
}

続く

407 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:14:08 ]
>>406の続き

#ifdef UNICODE
/*char型からwchar_t型に変換*/
::MultiByteToWideChar(CP_THREAD_ACP,0,pszChar,strlen(pszChar)+1,(LPWSTR)pszTchar,sizeof(pszTchar));

#else
/*文字列のコピー*/
strcpy(pszTchar,pszChar);

#endif

return pszTchar; //処理が終わったらfree
}



正しく変換できるの最初の4文字までで、以降は文字化けします。

知識のある方、是非お願い致します。

408 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:15:12 ]
sizeof(pszTchar) == 4

409 名前:397 mailto:sage [2010/09/30(木) 15:29:39 ]
ネットを見ながら書いてみた結果さらに悪化したのですが何ででしょうorz
codepad.org/mxC15vFl

410 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:33:58 ]
なぁ、そもそも数独って何?



411 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:40:30 ]
>>410
めんどくさいから検索してくれ。簡単に言えば、9x9升に1から9の数字を縦横ブロック毎にユニークになるように並べるパズルだ。

412 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:40:31 ]
・同じ列で同じ数字を2つ以上使ってはいけない
・同じ行で同じ数字を2つ以上使ってはいけない
・3x3ブロック内で同じ数字を2つ以上使ってはいけない
以上の条件を満たすように空欄を1〜9の数字で埋めるゲーム

413 名前:397 mailto:sage [2010/09/30(木) 15:40:46 ]
>>410
3×3のブロックに区切られた 9×9 の正方形の枠内に1〜9までの数字を入れるパズル
ナンプレ

414 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:49:35 ]
>>405
試しに作ってみた。雑に作ったら結構時間掛かったぞ。
--
$ time ./a < foo
0 0 3 0 0 0 0 0 0
0 9 0 0 0 0 2 0 0
4 0 0 5 7 8 0 1 0
0 8 2 9 0 0 4 0 3
0 0 5 0 0 0 0 0 7
0 0 1 0 0 0 0 0 8
8 0 0 6 2 5 0 9 0
0 0 0 4 0 0 0 0 0
0 6 0 0 0 0 8 0 0

7 5 3 1 9 2 6 8 4
1 9 8 3 4 6 2 7 5
4 2 6 5 7 8 3 1 9
6 8 2 9 1 7 4 5 3
9 4 5 8 6 3 1 2 7
3 7 1 2 5 4 9 6 8
8 3 4 6 2 5 7 9 1
2 1 7 4 8 9 5 3 6
5 6 9 7 3 1 8 4 2


real 0m32.131s
user 0m30.733s
sys 0m0.030s

415 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 15:59:15 ]
規格で保証されてんのは再帰17(?)回だっけ
それ以下で解けないとだめだよなJK

416 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 16:06:11 ]
規格に制限なんかあったか?
スタックさえ気をつければ平気だと思ったが

417 名前:397 mailto:sage [2010/09/30(木) 16:07:20 ]
ミスが見つけられないorz
0 0 3 0 0 0 0 0 0
0 9 0 0 0 0 2 0 0
4 0 0 5 7 8 0 1 0
0 8 2 9 0 0 4 0 3
0 0 5 0 0 0 0 0 7
0 0 1 0 0 0 0 0 8
8 0 0 6 2 5 0 9 0
0 0 0 4 0 0 0 0 0
0 6 0 0 0 0 8 0 0

1 1 3 1 1 1 5 4 4
1 9 6 1 1 1 2 3 4
4 2 6 5 7 8 3 1 6
6 8 2 9 1 1 4 5 3
3 3 5 1 1 1 1 2 7
3 3 1 2 3 2 5 2 8
8 1 4 6 2 5 1 9 1
1 1 7 4 1 1 1 2 1
1 6 4 1 1 1 8 2 1

418 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 16:34:11 ]
>>417
動くように直してみたよ
見比べて参考にしてみてくれ
codepad.org/F1qWvnwF

419 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 16:42:04 ]
>>415
何の規格だyp
ちなみに、>414はPen4 2.2GHzでの時間ね。

って書いているうちに>418を見たのでそれも試した。
--
$ time ./a < foo

7 5 3 1 9 2 6 8 4
1 9 8 3 4 6 2 7 5
4 2 6 5 7 8 3 1 9
6 8 2 9 1 7 4 5 3
9 4 5 8 6 3 1 2 7
3 7 1 2 5 4 9 6 8
8 3 4 6 2 5 7 9 1
2 1 7 4 8 9 5 3 6
5 6 9 7 3 1 8 4 2
real 0m0.057s
user 0m0.046s
sys 0m0.030s
--
冗談じゃねぇw

420 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 16:53:44 ]
>>414=>>419 涙目w

例の「最も難しい」とされる問題でどの位掛かるんだ?
隙間が多かろうが論理的に解くには複雑だろうが総当りなら関係ないと思うんだが。



421 名前:デフォルトの名無しさん [2010/09/30(木) 16:55:05 ]
>>415
main() { a(17); }
a(b)
{
char c[2147483647];
if(b) a(b-1);
}

422 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 17:07:30 ]
>>420
これ?
--
. . 5 3 . . . . .
8 . . . . . . 2 .
. 7 . . 1 . 5 . .

4 . . . . 5 3 . .
. 1 . . 7 . . . 6
. . 3 2 . . . 8 .

. 6 . 5 . . . . 9
. . 4 . . . . 3 .
. . . . . 9 7 . .
--
ほらよ。Cygwinだから所要時間は誤差の範疇。
--
$ time ./a < most

1 4 5 3 2 7 6 9 8
8 3 9 6 5 4 1 2 7
6 7 2 9 1 8 5 4 3
4 9 6 1 8 5 3 7 2
2 1 8 4 7 3 9 5 6
7 5 3 2 9 6 4 8 1
3 6 7 5 4 2 8 1 9
9 8 4 7 6 1 2 3 5
5 2 1 8 3 9 7 6 4
real 0m0.056s
user 0m0.030s
sys 0m0.062s

423 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 17:28:26 ]
9x9を9枚のレイヤーみたいに扱って
9X9X9のビット列で比較したら速くならないかな

424 名前:414=419=422 mailto:sage [2010/09/30(木) 17:45:31 ]
>>423
これ以上早くしてどうすんのw

というわけで、自分のも計測誤差の領域まで速くなった。
既にある数字まで無駄にチェックしちゃっていたよ。

425 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 17:48:58 ]
小手先の技で高速化しようとするな。
素直にシンプルに書け。
高速化の要求はハード側にしろ。


426 名前:>>406-407 mailto:sage [2010/09/30(木) 19:22:15 ]
>>408
無事解決いたしました。
ありがとうございました。

427 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 19:34:35 ]
>>414
遅すぎワロタ

428 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 19:40:14 ]
>>427
sysでは勝ってるだろバカ

429 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:09:34 ]
VC++2010
なぜかelseの中まで実行していく・・・助けてクリ

DWORD dBuf;
MENUITEMINFO info;
GetMenuItemInfo( hSubMenu, IDM_TOPMOST, FALSE, &info );

if( info.fState == MFS_CHECKED )
{
dBuf = MFS_UNCHECKED;
SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
} else {
dBuf = MFS_CHECKED;
SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}

430 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:10:49 ]
(info.fState & MFS_CHECKED) == MFS_CHECKED



431 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:11:36 ]
言葉足らずだった;
条件が真の場合でもelseの中実行してしまう

432 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:16:23 ]
>>430
アリガトンでもまだ実行してしまう;;

if((info.fState & MFS_CHECKED) == MFS_CHECKED){
dBuf = MFS_UNCHECKED;
SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
} else {
dBuf = MFS_CHECKED;
SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}

433 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:18:25 ]
実行するわきゃねーだろ。全部コード晒せ。

434 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:20:36 ]
>>432
それでだめならそもそもinfo.fStateにフラグが立ってない
そこのコード以外の部分の問題だ

435 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:26:38 ]
とりあえず前後だけ。ほんとにナゾ・・・
これでもダメだったら恥ずかしい部分(コード的にじゃなくて)修正してうpします。

static HMENU hMenu,hSubMenu;
MENUITEMINFO info;
ZeroMemory(&info,sizeof(MENUITEMINFO));
static DWORD dBuf;
/*メッセージ分岐*/
case IDM_TOPMOST: //システムトレイアイコン右クリック時ポップアップメニューの中にある最前面表示切替
info.cbSize = sizeof(info);
info.fMask = MIIM_STATE;
hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU1));
hSubMenu = GetSubMenu( hMenu, 0 );

GetMenuItemInfo( hSubMenu, IDM_TOPMOST, FALSE, &info ); //チェック状態取得

if((info.fState & MFS_CHECKED) == MFS_CHECKED){
dBuf = MFS_UNCHECKED;
SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
} else {
dBuf = MFS_CHECKED;
SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}

info.fState=dBuf;

hMenu = LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU1));
hSubMenu = GetSubMenu( hMenu, 0 );
SetMenuItemInfo( hSubMenu, IDM_TOPMOST, FALSE, &info );
break;

436 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:28:01 ]
info.fStateは8が入ってます。うーむ??

437 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:29:26 ]
関数自体が2回呼び出されてるんじゃないの?

438 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:29:58 ]
elseブロックの中に入ってるって根拠はもちろんデバッガなんだよな?

439 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:30:27 ]
>>435
本当に両方実行されているってどう確認した?

440 名前:デフォルトの名無しさん [2010/09/30(木) 20:31:26 ]
俺も static が気になるなあ



441 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:32:38 ]
も、ってお前しか気にしてない

442 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:32:39 ]
VC++で両方にブレークポイントはってるんですがそこが実行されてるんです。。。

443 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:35:03 ]
紛らわしいので追記ステップで実行しました・・・

444 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:35:45 ]
両方だけじゃなくてif文の前後にも置いて、1回の実行で両方実行されてるか調べて

445 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:36:05 ]
なんで毎回LoadMenuしてんだ

446 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:42:18 ]
>>444
elseの中のブレークポイントふみませんでした;;;
凡ミスかもしれませんつってk(

んでもステップオーバーだと踏んでいくんです
>>445
ハンドルがしょっちゅう変わるんで。これも謎なんです・・・

447 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:43:55 ]
もしかして: リリースビルド

448 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:44:19 ]
LoadMenu の段階で menu-state は初期化される

LoadMenu(初期状態) → 条件分岐 → LoadMenu(初期状態) → state セット
2回目の以降の呼び出しも同じように
LoadMenu(初期状態) → 条件分岐 → LoadMenu(初期状態) → state セット

LoadMenu を1回だけ呼ぶようにして 状態を保持したまま分岐できるようにしないとマズイ

449 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:47:33 ]
>>447
そのようでした。お手数かけました。さよならありがとちきゅうすれ汚しゴメンネあふうううう

450 名前:397 mailto:sage [2010/09/30(木) 20:48:40 ]
解決しました
>>418
ありがとうございます



451 名前:デフォルトの名無しさん mailto:sage [2010/09/30(木) 20:49:59 ]
>>448
MSDNちゃんと読んでませんでした。んで結果ちゃんと動きました。
レス下さった皆様、本当にありがとうございました。

452 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 07:22:58 ]
ふっほっはっ

453 名前:デフォルトの名無しさん [2010/10/01(金) 08:15:24 ]
警告が出て気になります。何が原因でしょうか。

#if 1
{
dd= &buff[k*16];
u= *dd;
}
#else
memcpy(u.m,&buff[16*k],16);
#endif

memcpy(dd,&buff[16*k],16);

hash.c:230:11: warning: assignment from incompatible pointer type
hash.c:237:7: warning: incompatible implicit declaration of built-in function 'm
emcpy'

454 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 08:39:12 ]
incompatible pointer type って書いてあるのに。
implicit declarationは、適切なheader fileをincludeしていないから。
incompatibleっていってるからincludeすると別の警告が出るだろうけど。

455 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 11:28:00 ]
string.hを追加すれば、消えるでしょ

456 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 11:33:53 ]
エラーメッセージが解読できない暗号くんでした

457 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 12:03:36 ]
なぜこんなにも妬ましいのだろう

458 名前:デフォルトの名無しさん mailto:sage [2010/10/01(金) 13:43:06 ]
incompatible pointer type って書いてあるのに。
implicit declarationは、適切なheader fileをincludeしていないから。
incompatibleっていってるからincludeすると別の警告が出るだろうけど。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<88KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef