トップページ⇒tech
1001コメント246KB

C言語なら、俺に聞け! <18>

■ このスレッドは過去ログ倉庫に格納されています
0001きょうはいいテンキーです。日下部陽一NGNG
漏れは38才、21年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったら漏れに聞け。

だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。

・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html

Cプログラマならこれを買っとけ。
・プログラミング言語C(K&Rと呼べば通だ)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/yfcbookshelf-22/250-3950205-1475419

K&Rで挫折するような救いがたいやつはこれでも読め
・作ってわかるCプログラミング(アヒル本と呼べば通だ)
http://dennou.gihyo.co.jp/books/void_c/
http://www.amazon.co.jp/exec/obidos/ASIN/477411328X/249-4698746-2014711

推薦図書/必読書のためのスレッド PART3
http://pc.2ch.net/test/read.cgi/tech/1016722820/

・前スレ C言語なら、俺に聞け! <17>
http://pc.2ch.net/test/read.cgi/tech/1019372139/l50
0002デフォルトの名無しさんNGNG
>>1
よくやった。お疲れさま。
0003デフォルトの名無しさんNGNG
1000ズサ
0004デフォルトの名無しさんNGNG
ずざー
0005         NGNG

                     さー――――
0006デフォルトの名無しさんNGNG
(´・ω・`)ショボーン
0007デフォルトの名無しさんNGNG
ラッキー7ゲット
0008デフォルトの名無しさんNGNG
>>7
770番ほど早い
0009デフォルトの名無しさんNGNG
お憑かれー>>1
0010デフォルトの名無しさんNGNG
>>9
引きちぎるぞ
00119NGNG
どういう意味?
0012デフォルトの名無しさんNGNG
こらースクリプトンを使うんじゃない!!
パパ怒っちゃうぞ
0013999NGNG
   ||
 ∧||∧
(  ⌒ ヽ 
 ∪  ノ
  ∪∪
0014前スレの1&1000NGNG
>>13
いってよし!
0015デフォルトの名無しさんNGNG
>>14
もう逝ってる!
0016899NGNG
windows2000にのMS-DOSにはEDITという機能はないんですか?
0017デフォルトの名無しさんNGNG
無い
0018デフォルトの名無しさんNGNG
win2000にはMS-DOSはありません。
0019899NGNG
コンパイルできて、.exeを作成できたのですが、ブラウザから実行するとファイルのダウンロードになってしまいます。
なぜなんですか。
0020899NGNG
すみません。出来ました。
0021デフォルトの名無しさんNGNG
>>19
もう知らない(笑)


(ダウンロード状態になるのはヘッダーが適切でないから)
0022デフォルトの名無しさんNGNG
M女史-傲慢 = 899
って感じか?
0023デフォルトの名無しさんNGNG
1. EXE形式の実行にチェックが入ってない
2. 127.0.0.1 or localhost からアクセスしてない
のどちらか(両方?)と見た
0024デフォルトの名無しさんNGNG
何だつまらん、解決してんでやんの
0025デフォルトの名無しさんNGNG
#define TEXT ABCD
というのがあって、
DELETE_TEXT(TEXT, 1)
とやるとTEXTがABCに置き換わるようなマクロは作れるでしょうか。
0026899NGNG
>>23-24
ごめんなさい。AN httpdの.exeを編集の”一般パスでも実行する”をチェックしたら、出来ました。
0027デフォルトの名無しさんNGNG
>>25
できてるじゃん。それで不満か?
0028デフォルトの名無しさんNGNG
>>25
言ってる意味が分からん
もう少し分かりやすく説明しなはれ
0029デフォルトの名無しさんNGNG
>>27
出来てない
003025NGNG
マクロでトークンの削除をしたいのです。
0031デフォルトの名無しさんNGNG
>>29
出来てるだろ?
DELETE_TEXT(TEXT, 1) -> DELETE_TEXT(ABCD, 1)
になるじゃん。
まさか、
DELETE_TEXT(TEXT, 1) -> DELETE_ABCD(ABCD, 1)
とでもしたいのか?
003225NGNG
30訂正
部分的な削除です。
0033デフォルトの名無しさんNGNG
そいつぁム図隠邪ないかな
0034デフォルトの名無しさんNGNG
>>32
ううん?
具体例を示して
003525NGNG
>>33
やっぱ追加や置換しかできませんかね・・・

>>34
ABCD というトークンを、マクロ(>>25ならDELETE_TEXT)で
ABC にしたいのです。
0036デフォルトの名無しさんNGNG
>>34
DELETE_TEXT( ABCD, 1 )
とすると
ACD
と指定したのと同じくなるようなマクロ
DELETE_TEXTを作りたいって事でしょ。
003729NGNG
>>27=31
良く見てみ
ABCに変えたいって書いてあるぞ
0038デフォルトの名無しさんNGNG
>>35
#define TEXT ABCD
#define ABCD ABC
003938NGNG
あ、なんか勘違いしていた。
0040デフォルトの名無しさんNGNG
>>35
うーん、あやしいなぁ。
トークンを削除して、最終的に何がしたいのか教えてくれ。
004138NGNG
そういう意味ね(笑)
0042デフォルトの名無しさんNGNG
>>25
やっと分かった!!
DELETE_TEXT(TEXT, 1)
はTEXTをマクロ展開してから後ろから一文字削除ってことか
無茶言うぜ。
0043デフォルトの名無しさんNGNG
文字配列なら
#define DELETE_TEXT(str, n) (str[strlen(str)-(n)] = '\0')
とか?
0044デフォルトの名無しさんNGNG
>>42
カコイイなぁそれ。オレにも使わせて。

・・・無茶言うぜ。
004525NGNG
あれ、なんでだったろ。思い出せない・・・。
昼間に、これできたら便利だなーって思ったんですが。
ちょっと昼間書いたソース見ながら思い出してみます。
0046デフォルトの名無しさんNGNG
本当に>>42の解釈であってるの?
それなら、
DELETE_TEXT( ABCD, 1 )
で1文字削るって分かってるんだから、ABC でええやん
てなわけで、本当は何をしたいんだ?
0047デフォルトの名無しさんNGNG
ちっ、また遅かったか…
0048デフォルトの名無しさんNGNG
>>46
>>43の言うように文字列リテラルじゃなくて文字配列なんだろうな。
実行してみるまで何が入るかわからないってことで。
もっとも、文字リテラルに対してやったりしたら・・・・
0049デフォルトの名無しさんNGNG
前スレ914のことなんですが
http://pc.2ch.net/test/read.cgi/tech/1019372139/914

ようは、これって
sscanf(buf, "%" TOSTR(LEN) "s", buf2);
が
sscanf(buf, "%#32s", buf2);
に、マクロによって置き換わるんだと思うんですが、
書式指定の#32の意味がわかりません。
VC++付属のMSDNを見てみたんだけど、、、、
#「scanf 系関数の書式指定フィールド」ていうやつ

いま手元に本とかないんですが、
どっかホームページで解説してるようなところ無いでしょうか?
005025NGNG
やっと分かりました・・・
#define REFLECTION EBX+0x100
#define REFRACTION EBX+0x104
       :
のような定義がたくさんあります。全てEBX+オフセットという形です。
EBXをオフセットといっしょに定義しているのは、

FMUL DWord ptr [EBX+REFLECTION] より、
FMUL DWord ptr [RELFECTION]     と、書きたかったからです。

C++でも時々定義された値を使用します。
*(float *)(Buffer + REFLECTION) = 1.0;
しかし↑は定義内の「EBX+」が邪魔で当然コンパイルはできません。

そのために、
#define DELETE_TEXT(x, n) ・・・ //←これの作り方が分からない
#define DEL_REG(x) DELETE_TEXT(x, 4) //EBX+を削除するマクロ
を作って、

*(float *)(Buffer + DEL_REG(REFLECTION)) = 1.0;
と、したいのです。
■ このスレッドは過去ログ倉庫に格納されています