X



C言語相談室(上級者専用)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (ワッチョイ 139f-Cjmv)
垢版 |
2018/03/02(金) 22:48:03.65ID:2Cs+DkMh0
C言語の話題のみ取り扱います。C++の話題はC++スレへ。
上級者専用です。10,000行程度のソースを扱えない人は以下スレへ。

C言語なら俺に聞け
https://mevius.5ch.net/test/read.cgi/tech/1519046038/

適宜以下を使用してください。
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
0282さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ e101-IbdQ)
垢版 |
2019/02/13(水) 16:12:10.90ID:GYQxg1as0
昔、パソコン通信とか言って、音響カプラとかモデムとかあったよな。それと少し違うのは音声データが非可逆的に圧縮される可能性があるということ。
例えばMP3に圧縮すると、元音声波形とは少し違った形になると予想できる。また、録音時にテレビの音や人間の雑談もあり得るから、環境ノイズの特性がわからないと。うーん。
0283さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ e101-IbdQ)
垢版 |
2019/02/13(水) 16:20:06.62ID:GYQxg1as0
はっきりと聴覚できる音声・波形であることが第一条件。MP3圧縮しても消えない音声が第二条件。
環境ノイズに邪魔されないのが第三条件。とすると、やかましい、うるさい音になるだろう。
0290デフォルトの名無しさん (エムゾネ FF22-DOJB)
垢版 |
2019/02/13(水) 18:32:43.66ID:QnNf1eu6F
>>278
バイナリデータに音声を埋め込め
0292デフォルトの名無しさん (エムゾネ FF22-DOJB)
垢版 |
2019/02/13(水) 18:39:36.50ID:QnNf1eu6F
音声とデータのS/D比はいくつくらいを想定?
0294デフォルトの名無しさん (エムゾネ FF22-DOJB)
垢版 |
2019/02/13(水) 18:44:20.39ID:QnNf1eu6F
監視すり抜けるだけならデータファイル名に.mp3付けるだけでよくね?
0299デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/14(木) 13:02:29.56ID:b/dX4O0GF
位相変調かければ良いんじゃね
0300デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/14(木) 13:04:46.57ID:b/dX4O0GF
あとオリジナルの曲(固定)をベースにしても良いなら
マスター曲をまず自分で保管しておいて
流れてくるデータ付き(劣化)曲を受け取ったら
マスターとの差分なり誤り訂正なりで
データ部分だけ取り出すアルゴリズム作れそうだし
それならクロックタイミングとか気にする必要無さそう
0302デフォルトの名無しさん (ワッチョイ 877b-WJvq)
垢版 |
2019/02/15(金) 11:42:07.12ID:OZ8Dcboc0
たくさん詰め込みたい、っていう要求さえなければ、
「読み上げ」ソフトと「音声認識」ソフトの組み合わせ、と言いたいな。
プリントアウトした紙をOCRで読み取らせる、ってのと同じ趣向のネタ。
0303デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/15(金) 12:13:25.93ID:TNDmXWGMF
別に音楽じゃなくても数字読んでる声送れば良いのか
オデッセイみたいなローテクだな
あとはその読みをどれだけ高速化出来るかだな
0305デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/15(金) 14:31:59.60ID:TNDmXWGMF
1をイチと読む必要も無いしな
256通りの音を定義しておけば良い
65536通り定義出来るならもっと圧縮可能かも知れない
0307デフォルトの名無しさん (エムゾネ FF7f-/Ktc)
垢版 |
2019/02/16(土) 12:28:33.22ID:lF7O1vprF
ピーヒョロヒョロピーガーじゃだめなんやろ
ちゃんと音楽でカモフラせんといかんのやろ
0308デフォルトの名無しさん (ワッチョイ ff7c-wP4P)
垢版 |
2019/02/16(土) 12:52:24.23ID:mSqP7pCT0
カモフラージュせんでもCDMAで良くね
0310デフォルトの名無しさん (ワッチョイ 877b-WJvq)
垢版 |
2019/02/17(日) 06:29:24.48ID:S2ikZDqt0
画面にダンプをスクロール表示させて、デジカメで動画撮影。
持ち出した先でOCRにかけるってことだな。

いや、一画面ずつ表示させちゃ、ライターに仕込んだ小型カメラで
フィルムに撮影してもいいんだけど。
……なお、このテープは自動的に消滅する。健闘を祈る。
0311デフォルトの名無しさん (ワッチョイ ff7c-/Ktc)
垢版 |
2019/02/17(日) 11:38:39.98ID:7MWZQWrl0
宜しく御検討下さい
0312デフォルトの名無しさん (ワッチョイ bf02-yQ/S)
垢版 |
2019/02/17(日) 23:46:59.25ID:/Va8z8eH0
そう言えば昔のマイコン雑誌には1画面づつ表示させて写真撮影した BASIC のリストやマシン語の16進ダンプが載っていたなあ。
0314デフォルトの名無しさん (ワッチョイ 877b-WJvq)
垢版 |
2019/02/18(月) 06:19:18.56ID:KTgkm+s50
雑誌として売ってるんだから当然印刷、という混ぜっ返しは置いといて、
いったんプリントアウトした紙を原稿にして印刷屋さんに回してたよね。
物理的に切り貼りした痕跡(プログラムリスト部が傾いてる)なんかも見て取れた。

データの多いゲームでリストの字数・行数を減らすための工夫だったか、
謎解き部分の難読化が目的か、Base64風というかドラクエの復活の呪文みたいに
データに使う文字種を増やしたプログラムが掲載されたことがあったけど、
PC-6001用のリストを、普通のパソコン向けのプリンタで出したせいで
DATA文で使われた「ひらがな」が正しく印刷されなくて打ち込み不可能、
次号に長い訂正リストが載った、ってことを思い出した。
その時の訂正リストの方は画面を写真撮影したものだったような。
モニタ(っていうか家庭用テレビ)の湾曲が見えた記憶がある。
0316デフォルトの名無しさん (エムゾネ FF7f-wP4P)
垢版 |
2019/02/18(月) 13:05:25.16ID:cZFby2grF
PC-6001
0322デフォルトの名無しさん (ワッチョイ bf02-yQ/S)
垢版 |
2019/02/20(水) 01:51:41.58ID:J4bEIWoi0
古い70年代後半や80年代前半のマイコン雑誌だと TK-80BS とか、プリンタに接続して文字を出力する事が
困難な機種に関してはプログラムリストを画面表示して写真撮影した状態で雑誌に載っていたと思う。
0325デフォルトの名無しさん (アウウィフ FF4b-wP4P)
垢版 |
2019/02/20(水) 19:02:11.40ID:v7iPz90JF
TK-80ってCRTに出せるのもあったんか
0327デフォルトの名無しさん (ワッチョイ 877b-WJvq)
垢版 |
2019/02/20(水) 19:18:38.64ID:V5JGZApS0
調べたら TK-80BS っていう別売りのテレビ出力ボードがあったみたいね。
I/O誌あたりには、色んなワンボードマイコンに、汎用で安価なVRAMボードを
接続して使うハードウェア記事が載ってた。

あとI/O誌は、カセットテープのセーブデータの
フォーマット解析記事がやたら多かった気がする。
もしかすると一部の投稿者が、新機種の出る度に
手持ちの機材と技術で解析してたのかもしれないけど。
0330デフォルトの名無しさん (ワッチョイ a77c-/Ktc)
垢版 |
2019/02/20(水) 19:49:14.33ID:sr7oPl810
基板パターンカットωωω
0331デフォルトの名無しさん (ワッチョイ 3d7b-Frsa)
垢版 |
2019/02/21(木) 05:00:32.48ID:k7mDakXF0
TK-80BS は、単なるテレビ出力ボードじゃなくて、
キーボードやら拡張RAMやらついてたのだな。
まさにBASICを使えるようにするための拡張キットか。

…なんだかコア構想っぽいね。
0332デフォルトの名無しさん (ワッチョイ 9e02-rusg)
垢版 |
2019/02/22(金) 03:30:54.88ID:C6SOPE3a0
TK-80の互換機があるのな。

aitendo、TK-80を再現したマイコンボード「ZK-80組立てキット」を発売
https://hardware.srad.jp/story/19/02/07/0621259/
0335デフォルトの名無しさん (ワッチョイ 9e02-LfKm)
垢版 |
2019/02/23(土) 12:04:53.89ID:9pS68leH0
マイコンボードはやっぱI/O引っ張り出して何かのON/OFFをさせたりしないとつまんないよな。
0337デフォルトの名無しさん (アウアウウー Sa21-sU2d)
垢版 |
2019/02/24(日) 19:44:27.45ID:iK4D+UQia
>>335
ON/OFFだけならアセンブリのが短く書けたりするよね。
計算とか入るとCのが楽だけど。
0339デフォルトの名無しさん (ワッチョイ 3d7b-Frsa)
垢版 |
2019/02/24(日) 20:26:31.54ID:RgZ/0jGo0
Cよりアセンブラが便利と言えばローテート演算だね。
「まず端っこのビットを保存してから、符号なしでシフト、
保存しておいたビットを見て反対の端にビットORで重ねる」て操作が
キャリーフラグ経由で自動的にできちゃう。

……Cから離れて長い気がするので、ちょいと絡めた話にしてみた。
0340デフォルトの名無しさん (ワッチョイ 797c-kEY9)
垢版 |
2019/02/25(月) 10:44:07.01ID:Opp/wdL50
なんで C の bit 演算の仕様に入れなかったんだろうってのがいくつかあるね
0347デフォルトの名無しさん (ワッチョイ 5eca-JfMx)
垢版 |
2019/02/26(火) 08:05:18.02ID:KfjVzsm10
>>346
でもコンパイラがフラグを変えないように命令を配置しないといけないってのは相当な制約で、それやるくらいならインラインアセンブラ使うほうが現実的だろ。
実際のフラグを使わず言語仕様として固定的な変数のように実装する方法もあるだろうが、それやってまでフラグ的なものを再現する利点も無い。
0349デフォルトの名無しさん (アウウィフ FF21-kEY9)
垢版 |
2019/02/26(火) 14:28:27.09ID:8+7ktUtNF
>>344
割り込みとかマルチスレッドとかで黒魔術化しそう
0359さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ df01-Q6aG)
垢版 |
2019/03/08(金) 21:00:14.66ID:8R2ZaOuQ0
次の案件は、ReactOSのドラッグ&ドロップだ。
https://github.com/reactos/reactos/blob/master/dll/win32/ole32/ole2.c

このファイル「ole2.c」を編集し、メモ帳(Notepad)などのアプリへファイルアイコンを
ドラッグ&ドロップできる機能を実現せよ。具体的には、RegisterDragDrop周辺を改造して、
WS_EX_ACCEPTFILES拡張スタイルを有するウィンドウについて、
ドロップターゲットが登録済みかのように振る舞い、WM_DROPFILESに反応するようにせよ。

ヒント。
https://github.com/katahiromz/DragDropSamples

キーワード:プロセス、SetProp
成功報酬:2万円分のアマゾンギフト券。
0360さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-xAHY)
垢版 |
2019/03/08(金) 22:04:41.94ID:ZkhAqKafd
よく分かる解説。

GetProp/SetProp関数は、ウィンドウに任意の値を結びつける。IDropTargetはドロップターゲットを表すインターフェース。
ドロップターゲットとはドロップできる対象を意味する。
RegisterDragDrop関数は、ドロップターゲットを登録する。RevokeDragDrop関数は登録を抹消する。
0361さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-xAHY)
垢版 |
2019/03/08(金) 22:07:26.74ID:ZkhAqKafd
RegisterDragDrop関数はSetProp関数を使って、登録したドロップターゲットの情報を保持する。
RevokeDragDrop関数はRemoveProp関数を使ってドロップターゲットの情報を破棄する。
0362さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-xAHY)
垢版 |
2019/03/08(金) 22:12:00.78ID:ZkhAqKafd
DoDragDrop関数はドラッグ&ドロップを開始し、SetCapture関数により、ドラッグ中のメッセージ受け取りを独占する。
ドラッグ中のマウスの位置から、WindowFromPoint関数により、マウスの下のウィンドウを取得する。
0364さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-xAHY)
垢版 |
2019/03/08(金) 22:20:31.50ID:ZkhAqKafd
D&Dは、あるプロセスから別のプロセスへ、プロセスをまたいだ処理になるので、プロセス間通信が必要になる。
DuplicateHandleという関数が別のプロセスにハンドルを操作する権利を与える。
0365さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-xAHY)
垢版 |
2019/03/08(金) 22:49:40.18ID:ZkhAqKafd
少し実験して見た所、ドロップターゲットを登録したウィンドウではドロップを検出できた。
ゆえに、WS_EX_ACCEPTFILESを有するウィンドウで正しくドロップターゲットを振る舞い、WM_DROPFILESを送信すれば、問題は解決する。

報酬を三万円に増額する。できるヤツは居ないか?
0370デフォルトの名無しさん (ワッチョイ 1187-IujH)
垢版 |
2019/04/13(土) 12:35:21.42ID:a4r2Gpw40
>>863 それでもこの言語を選ぶ理由を知るためだ。
 そなたの示す言語があるのに、なぜpythonなのか疑問を抱くのは自然なことだ。
 疑問を解決する回答を望んでたが、それは得られなかった。
0371デフォルトの名無しさん (ワッチョイ 1187-IujH)
垢版 |
2019/04/13(土) 12:35:55.64ID:a4r2Gpw40
 インストール禁止な会社のパソコンはWeb経由で実行か。
 CodePadなら俺も知ってるが。そこまでしてpythonを使う価値があるかは疑問。

 実行速度が重要なところは、高速な言語に変更して使い分けるとかいな?。
 それは煩わしいな。高速な場面でも一通り対応できる言語のほうがいい。

 ハードウェアの性能が高ければ良いとかか?。高速なプログラム言語で、なおかつ高性能なハードウェアでないと。
 プログラムコードを改善して、プログラムの高速化か。高速なプログラム言語で、なおかつ高速で実行するプログラムコードでないと。
 C言語でも、実行の遅いプログラムコードは価値がないし。
0373蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ ce01-Q2ES)
垢版 |
2019/05/19(日) 22:57:26.41ID:o6jxwHTr0
テディベア、聞いてくれ。
https://jira.reactos.org/browse/CORE-15554
我々は、フォントレンダリングにおいて、テキストの変形と座標変換を
完璧にしないといけない。パスの必要なテストは、
C:\ReactOS\bin> gdi32_apitest TextTransform
だ。現在、いくつかテスト失敗がある。座標変換は何か間違えている。
何らかの修正が必要だ。
ターゲットは、$REACTOS/win32ss/gdi/ntgdi/freetype.c のIntExtTextOutW関数だ。
論理座標(LP)からデバイス座標(DP)へ変換して、それに
デバイス原点dc->ptlDCOrigを足したもので
IntEngMaskBlt関数を呼ばないといけない。
LOGFONT.lfWidth、LOGFONT.lfEscapement、WorldTransformなど
さまざまな変形があるため、本当に複雑なものになっている。
今月中に解決しないといけない。
0374蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd94-nCkw)
垢版 |
2019/05/20(月) 18:50:51.09ID:m/UtbRiId
lfWidthの指定があれば、幅を調整する必要がある。
lfEscapementの指定があれば、参照点を中心にテキストを回転しないといけない。
さらにグラフィックスモードがGM_ADVANCEDなら変形行列WorldTransformを適用する必要がある。
0379131 (ワッチョイ 7f7b-bDB9)
垢版 |
2019/05/21(火) 22:28:52.93ID:ff2E85uv0
>>373
ここは初心者に荒らされるのでもう諦めてる。
ゆとり/さとりはモラルがなさ過ぎて、どうしようもない。
とはいえ、おそらく彼等は「糞なネット」しか見たことがなく、「ましな状態」を想像出来なくての事だ。
当人達は全く荒らしている自覚がないのでどうにも救いようがない。
(治安の悪い地区に住む者が、その治安の悪さを問題視出来ないのと同じ。そういう物だと思ってる)

だから、初心者をBAN出来る掲示板があればそっちでやりたい。
(そこでゆとり/さとりにも「ましな状態」を見せないことには改善しない)
redditか8ch等で既にあればそこを利用するのが楽でいいから指定してくれ。
なければ自前で用意する事になるが、それならついでに色々準備したいからあと数年かかる。
なお再度言うが、「初心者は全員BAN」してくれるところな。「初心者用」のスレがあるだけでNGだ。
0380131 (ワッチョイ 7f7b-bDB9)
垢版 |
2019/05/21(火) 22:29:12.17ID:ff2E85uv0
が、ちょっと気になったことを言っておく。
131の時に見た限りでは、正直、あのコードで今君がやってるようなアジャイル開発は無理だ。
コード分岐が無駄に多すぎる。
(念のため言っておくが、今のコードを見たわけでない)

> 座標変換は何か間違えている。
これについて、単純には
・変換式を間違えている
・変換式は合っているが、コードが抜けている
の2通りのバグり方があるわけだが、どっちか認識出来てるか?

君はアフィン変換も怪しかったのでいまいち信用ならないが、
普通は変換式なんて仕様通り記述すればいいだけで、間違えないし、間違うものでもない。
また、変換式自体を間違っている場合は全部failするからすぐ分かる。

通ったり通らなかったりする場合は後者、つまり、あるべき場所でコードが抜けてるとか、コードの記述場所を間違えているとかだ。
これが発生するのは、コードに無駄に分岐があるからであり、言ってしまえばコードが汚いからだ。
アジャイルで今後とも少しずつ機能を追加していく気なら、いつかコードを整理しないと破綻すると思うぞ。
全仕様をそろそろ完備ならそのままやりきってしまうのも手だが。

綺麗にするのなら、まずは以下で。
・C流の分岐をケチるのは止めて、とにかく関数を小さく切り出してOAOOを厳密に守る
・すると中/上位関数は、AやってBやってCやって終わり、みたいなアホな関数だらけになる
・そうなると、上記「変換式」を書くにはここしかない、というのが唯一1ヶ所に確定する
結果、抜けたり、間違った場所に配置してしまう、ということがあり得なくなる。
逆に言えば、抜けたり、間違った場所に配置出来るのはコードが汚いから。

OAOOが徹底された場合、ほぼ常に「この機能を追加するならここに唯一1回だけ書く」状況となり、
正しく書けば機能追加終了、間違えば全failとなり、動作は非常に分かりやすくなる。
よく分からん動作になってデバッグに手こずるのは、コード構成に問題があるんだよ。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況