C言語って簡単だよな
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/10/07(日) 17:30:49型が厳格で、ポインタとかいう変態的な機能があるBASICだと思えば簡単だろ。
こんなので挫折する奴は池沼。
0002デフォルトの名無しさん
2007/10/07(日) 17:32:160003デフォルトの名無しさん
2007/10/07(日) 17:35:130004デフォルトの名無しさん
2007/10/07(日) 17:54:44今も昔も「アセンブリ言語は難しい」とか言う人は多いが、
8080やらZ80やらのアセンブリ言語なんて、今から見れば単純そのもの。
オブジェクト指向が一般化する前は「C言語は難しい」と当たり前のように言われてきたが、
覚えること自体は今時の言語よりはるかに少ない。
フィギュアスケートに例えるなら、昔なら2回転したら「オー、ミラクル!」とか言われたかもしれんが、
今では3回転しても「普通だね」って思われるようなもんだろ。
0005デフォルトの名無しさん
2007/10/07(日) 18:32:37前提条件を明確にせず簡単とか言ってしまっている時点で>>1はプログラマとしての適正がない。
0006デフォルトの名無しさん
2007/10/07(日) 18:51:48論旨を無視して必要以上に一般化して、他人を否定して
いるだけの人間よりは良い
0007デフォルトの名無しさん
2007/10/07(日) 19:35:13ちぐはぐな解釈だな。とりあえず日本語でおkとだけ言っておく。
0008デフォルトの名無しさん
2007/10/07(日) 19:43:300009デフォルトの名無しさん
2007/10/07(日) 20:33:560010デフォルトの名無しさん
2007/10/07(日) 21:49:33CoreFoundation使ってみ
0011デフォルトの名無しさん
2007/10/07(日) 21:53:27この程度の理解なら日本だけでも何万人もいるだろうが、
こんな糞スレ勃ててまで主張したがる莫迦は >>1 くらいのものだろうなあ。
0012デフォルトの名無しさん
2007/10/07(日) 21:58:04機能が少なければそのぶん習得は容易だ。
だから何だ?
総合的にモノをみられない>>1は無能の極み。
0013デフォルトの名無しさん
2007/10/07(日) 22:04:080014デフォルトの名無しさん
2007/10/07(日) 22:07:41阿呆の入れ墨をして全裸で街を練り歩いているようなもの。
0015デフォルトの名無しさん
2007/10/07(日) 22:26:40#include <stdlib.h>
void shine(char *vaka);
int main(void)
{
char *str;
str = (char *) malloc (sizeof(char) * 11);
if(!str){
printf("メモリ確保に失敗!\n");
return 1;
}
str = "itteyoshi!";
shine(str);
return 0;
}
void shine(char *vaka)
{
for(;;){
printf("%s\n", vaka);
}
}
0016デフォルトの名無しさん
2007/10/07(日) 23:13:38何に使うか分からないのにいきなり簡単とか言われても、
>>1の頭が悪いという証明にしかならない。
>>15
メモリの確保がまるまるいらん。
0017デフォルトの名無しさん
2007/10/07(日) 23:37:55いちおうfree()関数は入れろ。
>>16
動的なメモリの確保をしたほうがメモリの節約になるのでは?
0018デフォルトの名無しさん
2007/10/07(日) 23:54:540019デフォルトの名無しさん
2007/10/07(日) 23:57:36>str = "itteyoshi!";
これで悟れ、しかも節約とか意味不明。
0020デフォルトの名無しさん
2007/10/08(月) 00:04:31str = "itteyoshi!";
メモリの確保と文字列のコピー、C++の方がよっぽど簡単に書けるよな。
0021デフォルトの名無しさん
2007/10/08(月) 00:12:23動的確保を使わんでも動くが、
必要な分だけ確保して、必要なくなったら開放するのは
別に悪くないと思うのだが。
動きゃいいんだったらstr[100]とかやって配列でガッポリ確保すりゃいいわけだが、
馬鹿っぽいやりかただし。
0022デフォルトの名無しさん
2007/10/08(月) 00:18:48だからメモリ確保云々以前にプログラムが間違ってるんだよ。
なんでそんな基本的な部分に気がつかないんだ?
0023デフォルトの名無しさん
2007/10/08(月) 00:24:06エラーなしで普通に動くと思うが。
なぜmallocしとるのかといえば、
"itteyoshi!"を納めるのに必要なメモリ分だけ動的に確保しておけば、
あとで文字列が不要になったときにfree(str)で開放できるからだろ。
まぁ、このプログラムの場合は役に立ってないが、
メモリの動的確保のサンプルならばこれでいいのでは?
あなたはおそらく動的確保のメリットをわかってないし、
使ったこともないのだね。
0024デフォルトの名無しさん
2007/10/08(月) 00:25:060025デフォルトの名無しさん
2007/10/08(月) 00:26:11○ strcpy(str,"itteyoshi!");
0026デフォルトの名無しさん
2007/10/08(月) 00:33:20配列ではこうできない。
char str[] = "Hello";
str = "Goodbye"; /* これは間違い */
一方ポインタでは,
char *str = "Hello";
str = "Goodbye"; /* これは通る */
0027デフォルトの名無しさん
2007/10/08(月) 00:36:05>あなたはおそらく動的確保のメリットをわかってないし、
>使ったこともないのだね。
その前に文字列の扱いとポインタについてやり直せ
確保したアドレスの入っているポインタを上書きしたら、確保した意味がない
初心者より酷いぞ
0028デフォルトの名無しさん
2007/10/08(月) 00:50:35だめだろw
・せっかく確保しているのに別の領域を示すようにしている
・さらに元の領域は解放してない
0029デフォルトの名無しさん
2007/10/08(月) 01:16:14俺が直してやろう。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *str;
char moji[10] = {'i', 't', 't', 'e', 'y', 'o', 's', 'h', 'i', '!'};
int num, i;
num = 10;
str = (char *) malloc (sizeof(char) * (num+1));
if(!str){
printf("Error!\n");
return 1;
}
for(i=0; i<num; i++){
*(str+i) = moji[i];
}
*(str+num) = '\0';
printf("%s\n", str);
free(str);
return 0;
}
0030デフォルトの名無しさん
2007/10/08(月) 01:26:03「プロパティのオブジェクトがメソッドでポリモーフィズムだからカプセル化で継承が・・・」
とかいう話が無い分だけ。
0031デフォルトの名無しさん
2007/10/08(月) 01:34:58アルファがベータでイプシロンした、なぜか? を思い出したよw
0032デフォルトの名無しさん
2007/10/08(月) 01:37:190033デフォルトの名無しさん
2007/10/08(月) 01:42:47Cのユニットテストツール何つかってる?
0034デフォルトの名無しさん
2007/10/08(月) 01:53:330035デフォルトの名無しさん
2007/10/08(月) 01:55:540036デフォルトの名無しさん
2007/10/08(月) 01:57:34ソースくれ
0037デフォルトの名無しさん
2007/10/08(月) 02:00:20おいよ
http://sourceforge.net/projects/cunit/
0038デフォルトの名無しさん
2007/10/08(月) 02:02:30サンクス
0039デフォルトの名無しさん
2007/10/08(月) 02:12:08ttp://agileware.jp/agileYokocho/articles/c_tdd/
0040デフォルトの名無しさん
2007/10/08(月) 02:31:32たしかにTDDのありがたみが分からないよな
ってかこんなのあった
簡単に使えるみたいなこと書いてある
https://sourceforge.jp/projects/cue/
0041デフォルトの名無しさん
2007/10/08(月) 02:37:17CUnitよりいいかも
0042デフォルトの名無しさん
2007/10/08(月) 02:44:570043デフォルトの名無しさん
2007/10/08(月) 02:47:230044デフォルトの名無しさん
2007/10/08(月) 03:00:30CUnitと似てるとおもったら
CUnitをベースに開発したらしい
0045デフォルトの名無しさん
2007/10/08(月) 10:15:06問題はそこらじゅうに罠が張り巡らされている事
0046デフォルトの名無しさん
2007/10/08(月) 10:34:240047デフォルトの名無しさん
2007/10/08(月) 11:55:35大学1年生向きだな
0048デフォルトの名無しさん
2007/10/08(月) 13:18:570049デフォルトの名無しさん
2007/10/08(月) 13:31:41Z80アセンブラって簡単だよな
N88BASICって簡単だよな
0050デフォルトの名無しさん
2007/10/08(月) 13:41:55一度使ったら二度と忘れないくらい簡単やしな
0051デフォルトの名無しさん
2007/10/08(月) 14:27:16一度逝ったら二度と帰れないくらい簡単やしな
0052デフォルトの名無しさん
2007/10/08(月) 14:33:24忘れたら調べりゃいいだけだ
0053デフォルトの名無しさん
2007/10/08(月) 14:42:25main(){while(printf("%s\n","itteyoshi!"));}
0054デフォルトの名無しさん
2007/10/08(月) 15:04:380055デフォルトの名無しさん
2007/10/08(月) 15:06:44簡単という意見が大半だぞ
0056デフォルトの名無しさん
2007/10/08(月) 15:27:12IDE使って簡単なのを作るだけならC#とかJavaとかのほうが簡単そうな感じ。
0057デフォルトの名無しさん
2007/10/08(月) 15:40:11Cの時代は終わりつつある
俺が中学のころ親にプログラミングやりたいっていったらBASICやれといわれたんだが
今思えばこれは明らかにミスだろうと思った
Cは誰でもわかるところがミソ
子供にプログラミングやらせるならCやったほうがかなりの近道
高校ではCOBOLやっているが死ぬほどつまらない
0058デフォルトの名無しさん
2007/10/08(月) 15:47:00ある意味Cより簡単じゃんよ
0059デフォルトの名無しさん
2007/10/08(月) 15:50:21BASICは文法が似てるといってもやはりJAVAやC++とは程遠いので
世の中ではやっているJAVAやC++へ進むためにもそれらがお手本にしたCを勉強するのが
初歩ではいいのではないかと思います
0060デフォルトの名無しさん
2007/10/08(月) 15:52:07Cの時代が終わりつつあるというよりも
流行の言語から普通の言語になっただけっぽいが。
0061デフォルトの名無しさん
2007/10/08(月) 15:58:000062デフォルトの名無しさん
2007/10/08(月) 16:09:330063デフォルトの名無しさん
2007/10/08(月) 16:13:32初心者にとってプログラミング言語を覚えることの難しさ、、、って一体なんだ?
0064デフォルトの名無しさん
2007/10/08(月) 16:15:11文法を覚えたとしてもこれがどうしてこうなるのかって事を考えてしまうこと
これをすればこうなるが分かっていれば初心者はいいのにそれ以上を求めてしまう
ゆえに何が分からないのか自体が分からなくなる
人のコードを見てもどうしてこうなるの?がまずくる
自分でいじってみれば一目瞭然なのに
0065デフォルトの名無しさん
2007/10/08(月) 16:15:54それ覚えた気になってただけだよ
0066デフォルトの名無しさん
2007/10/08(月) 16:18:06? なにか勘違いしてないか?
C言語を、完全に忘れてしまったわけではないぞ。念のため。
0067デフォルトの名無しさん
2007/10/08(月) 16:22:450068デフォルトの名無しさん
2007/10/08(月) 16:26:040069デフォルトの名無しさん
2007/10/08(月) 16:27:5763 名前:デフォルトの名無しさん[sage] 投稿日:2007/10/08(月) 16:13:32
もうC言語覚えてから4年近く経って完全に忘れてしまったのだが、
--
66 名前:デフォルトの名無しさん[sage] 投稿日:2007/10/08(月) 16:18:06
>>65
? なにか勘違いしてないか?
C言語を、完全に忘れてしまったわけではないぞ。念のため。
--
何この阿呆。
0070デフォルトの名無しさん
2007/10/08(月) 16:28:320071デフォルトの名無しさん
2007/10/08(月) 16:38:350072デフォルトの名無しさん
2007/10/08(月) 16:41:49これが正解
0073デフォルトの名無しさん
2007/10/08(月) 16:43:130074デフォルトの名無しさん
2007/10/08(月) 16:45:310075デフォルトの名無しさん
2007/10/08(月) 16:46:31ありがちなバグとかいろいろ教えてあげたら食事に誘われました\(^O^)/
やっててよかったC言語\(^O^)/
0076デフォルトの名無しさん
2007/10/08(月) 16:47:190077デフォルトの名無しさん
2007/10/08(月) 16:47:560078デフォルトの名無しさん
2007/10/08(月) 16:53:290079デフォルトの名無しさん
2007/10/08(月) 16:54:140080デフォルトの名無しさん
2007/10/08(月) 17:01:09そもそも引っ掛けて来た側が皮肉だけで指摘出来てない池沼なのは。。。
0081デフォルトの名無しさん
2007/10/08(月) 17:36:35おれはCがいちばん好きで、あとRuby、たまにScheme
0082デフォルトの名無しさん
2007/10/08(月) 18:21:41C#でGUI作ってCでDLLを作って組み合わせる事も有る
あとはJavaでiアプリとかPHPも経験ある
最近の仕事はJavaがメイン
一番好きなのはC#でCは2番目だな
0083デフォルトの名無しさん
2007/10/08(月) 20:36:54違うよ。
アルファがベータをカッパらったらイプシロンした、なぜだろう?
だろ。
0084デフォルトの名無しさん
2007/10/08(月) 21:00:34CGIはPHPだが、今では別の言語に乗り換えるべきかと思っている
仕事ではまた違う言語を使う
0085デフォルトの名無しさん
2007/10/08(月) 22:23:10速度が段違い。
C#も好きだがunsafeコードだらけになるw
0086デフォルトの名無しさん
2007/10/09(火) 01:38:44CGIってそんなに速度が重要か?
0087デフォルトの名無しさん
2007/10/09(火) 01:43:400088デフォルトの名無しさん
2007/10/09(火) 07:06:28ヒント:2ちゃん
0089デフォルトの名無しさん
2007/10/09(火) 08:19:000090デフォルトの名無しさん
2007/10/09(火) 09:47:50人たちを尊敬してしまう。
ただ、どうなんだろうな。「え?アセンブリも分かるの?凄いね」っていうのと同じなの
かも知れない。
ということで、次は関数型、HaskellとかLispとか勉強してます。ポインタとか、ちょっと
何ていうんだろうか、ガス使わないで火を起こせるのが凄いっていうのに近い気がして
ちょっと・・・。
0091デフォルトの名無しさん
2007/10/09(火) 11:18:49お前はまさに、日記はチラシの裏に書いてろ。
0092デフォルトの名無しさん
2007/10/09(火) 12:19:33おまいは火を熾すのにガスを使うのか? 珍しいな。
0093デフォルトの名無しさん
2007/10/09(火) 14:32:54Lispに使い道あるかって〜と「え〜」で終わり。
今、実用性がある言語はJava、C++、SQLの3つだけ。
あとは共同開発に向かないので「マニアのお遊び化」してる。
0094デフォルトの名無しさん
2007/10/09(火) 14:34:46計6つ知ってれば何も怖いものはない。
009590
2007/10/09(火) 15:08:55方向に動いているでしょ?
命令型言語としては、Java以降っていうのは量的な変化しか無いと思う。ライブラリが
充実してるとか。
次のステップとしては関数型言語でしょ。参照透過性とか、今の命令型言語では限界がある。
0096デフォルトの名無しさん
2007/10/09(火) 15:28:29あるいはMathematicaか。
なぜ6つを薦めたか?
好きな物以外のことでもちゃんと勉強しておかないと、周りと会話が通じなくなると思う。
0097デフォルトの名無しさん
2007/10/09(火) 17:30:45ハサミだカッターだ、のこぎりの方がたくさん切れるって、頭が悪いにもほどがある。
0098デフォルトの名無しさん
2007/10/09(火) 18:03:25どうぐはつかいこなすもの。
ぷろならつかえてあたりまえ。
みんなわかってるのに。
あたまがわるいとかばかとか、いちいちじぶんのことかかなくていいよ。
0099デフォルトの名無しさん
2007/10/09(火) 18:05:340100デフォルトの名無しさん
2007/10/09(火) 18:07:57関数型プログラミング言語Haskell Part7
http://pc11.2ch.net/test/read.cgi/tech/1174211797/l50
0101デフォルトの名無しさん
2007/10/09(火) 20:39:06使えて当たり前とか勘違いしている奴は成長しない。
0102デフォルトの名無しさん
2007/10/09(火) 22:25:08簡単だよな
0103デフォルトの名無しさん
2007/10/11(木) 03:41:230104デフォルトの名無しさん
2007/10/11(木) 05:20:47標準ライブラリのソースを覗いて、その簡単な命令群を鬼のように組み合わせて実現している
関数の中身を見て感動。
自前で実装しようとして涙目。
0105デフォルトの名無しさん
2007/10/11(木) 06:25:01何が処理系依存で何がコンパイラの独自拡張なのか把握するだけでも一苦労なのに。
0106デフォルトの名無しさん
2007/10/12(金) 00:52:47サンプルプログラムを作って、無料のコンパイラでexeファイル
作って、簡単だなんて言ってるだけなんじゃねぇの
実務では格段の差を感じたのだが・・・
保守案件で他人のソースコード読んだことある?c++とcがごっちゃになったのとか、
スパゲッティコードとか
0107デフォルトの名無しさん
2007/10/12(金) 02:52:53カラー表示になって見やすくなったな
Win用にも移植してほしい
0108デフォルトの名無しさん
2007/10/12(金) 08:17:240109デフォルトの名無しさん
2007/10/12(金) 09:48:57C++とCが混ざってるのは別にそこまで問題じゃなくね?
011190
2007/10/12(金) 12:08:07> 保守案件で他人のソースコード読んだことある?c++とcがごっちゃになったのとか、
> スパゲッティコードとか
そういうのは言語の難しさ、ということとは関係がない。
0112デフォルトの名無しさん
2007/10/12(金) 12:10:20教えてくれてサンクス。
0113デフォルトの名無しさん
2007/10/12(金) 21:23:550114デフォルトの名無しさん
2007/10/13(土) 05:00:04わかるわけねーか
0115デフォルトの名無しさん
2007/10/13(土) 05:20:580117デフォルトの名無しさん
2007/10/13(土) 08:35:090118デフォルトの名無しさん
2007/10/13(土) 10:21:08時間が立つとほぐすことすら出来なくなることを示唆してんだよ。
と、こじつけてみる
0119デフォルトの名無しさん
2007/10/13(土) 11:09:150120デフォルトの名無しさん
2007/10/13(土) 11:34:040121デフォルトの名無しさん
2007/10/13(土) 17:44:150122デフォルトの名無しさん
2007/10/13(土) 21:40:050123デフォルトの名無しさん
2007/10/13(土) 21:42:030124デフォルトの名無しさん
2007/10/13(土) 22:11:210125デフォルトの名無しさん
2007/10/13(土) 22:40:270126デフォルトの名無しさん
2007/10/13(土) 23:15:580127デフォルトの名無しさん
2007/10/14(日) 05:34:13Java → C++ → C
Cでオブジェクト指向できれば一人前だな、組み込みでは唯一の選択肢かも
速度については・・・何も言うまい
0128デフォルトの名無しさん
2007/10/14(日) 05:36:02/* ウィンドウ クラス */
typedef struct{
/* ウィンドウの状態を定義 */
#define WINDOW_HIDE 0 /* 不可視状態 */
#define WINDOW_MINIMUM 1 /* 最小化状態 */
#define WINDOW_VISIBLE 2 /* 可視状態 */
#define WINDOW_MOVE 3 /* ウィンドウは移動中 */
#define WINDOW_RESIZE 4 /* ウィンドウはサイズ変更中 */
void* subclass; /* サブクラスへのポインタ */
Component component; /* コンポーネント本体 */
Button close_button;
Button taskbar_button;
char* title; /* ウィンドウのタイトル */
BYTE* icon; /* ウィンドウのアイコン */
BYTE status; /* 発生したイベントの種類 */
int drag_startx; /* ドラッグイベントの発生したx座標 */
int drag_starty; /* ドラッグイベントの発生したy座標 */
/* イベント拡張 */
void (*resize_action)(Component*); /* ウィンドウサイズを変えた時の処理 */
void (*close_action)(Component*); /* ウィンドウを閉じた時の処理 */
void (*paint)(Component*); /* 描画処理 */
} Window;
0129デフォルトの名無しさん
2007/10/14(日) 11:25:05armとかshとか。
C言語でオブジェクト指向は個人的には無駄な努力だと思う。
機能モジュールとして割り切っちまった方が分かり易い。
余談。
>>128の例はあんまりよろしくないように見える。
・Windowの生成/破棄関数もメンバに入れておくべき
・Componentが親クラスのつもりだとすると、
継承すればするほどメンバへのアクセスが煩雑になる。
というか、メンバにアクセスするために、
何を継承したクラスなのか意識せにゃならんのはダメだろ。
結局Cでクラスっぽいもの作ろうと思うと、gtkみたいなことになるんじゃないのかなぁ。
Cで継承はムリがある。
(プリプロセッサでムリすれば何とかなりそう?
例えばメンバを全部別ファイルにして#includeするとか。
そんなソース見たくねぇ・・・)
あとは関数ポインタやら変数やらをリストの構造体で持って、
プロトタイプベースっぽくするとか。
組み込みには、っていうか仕事ではまったくもって向かないケド・・・。
0130デフォルトの名無しさん
2007/10/14(日) 16:00:340131デフォルトの名無しさん
2007/10/15(月) 22:12:06>armとかshとか。
自分もそれ使ってたんだけどさ、先輩がそれを見て一言
「まさかWindows mobileのアプリ作っておいて、
『組み込みやってます』なんて言ってるんじゃないのか?(・∀・)ニヤニヤ 」
いや、そうなんだけどさ
0132デフォルトの名無しさん
2007/10/15(月) 22:42:16RTTI使えないとか例外禁止とか制限はあるけど
0133デフォルトの名無しさん
2007/10/16(火) 02:13:57(正確には、WindowsSDKみたいな物を作ることか)
0134デフォルトの名無しさん
2007/10/16(火) 22:31:52なんか良く分からんけど、もそっと詳しく聞いてみたい気もする。
ハンドル持ち回してグリグリ操作するところらへんの話?
0135デフォルトの名無しさん
2007/10/18(木) 13:29:41ま、面倒なだけつーかんじだけど、バインディングは作りやすいだろうね。
0136デフォルトの名無しさん
2007/10/18(木) 15:17:53でもPICやAVRのような完全な組み込みようでもCが提供されている時代だから…
(Z80やら6502やら8085は言わずもがな…)
0137デフォルトの名無しさん
2007/10/18(木) 22:10:450138デフォルトの名無しさん
2007/10/19(金) 18:27:47構造体の使いかたはこうで、継承はこう書け、みたいな方法論が。
0139デフォルトの名無しさん
2007/10/22(月) 05:16:43WndProcとかDlgProcのメッセージ処理の部分が、C++のクラス書くのと同じじゃね?
0140デフォルトの名無しさん
2007/11/06(火) 19:26:08もし美少女ロボが自作できたら? 3体目【引越】 [未来技術]
■☆ 人工知能全般 Mode18 ☆■ [哲学]
長門有希が質問に答えるスレ [プログラマー]
0141デフォルトの名無しさん
2007/11/06(火) 21:52:05ここのことかな
0142デフォルトの名無しさん
2008/01/21(月) 20:07:59プロのプログラマでもあまりにレベルが低い人が多すぎます。
そんな人に限って、自分のレベルの低さを自覚していない、、、
本人は構わないかもしれませんが、その下についた新人プログラマは
たまったものではありません。(私が経験しました。)
今になって分かりました。
彼らもまた、理解できていなかったのです。
プログラミング言語の一番の習得の近道はきちんと理解している人にアドバイスをもらうこと。です。
私のC言語に取り組んだ7年間をすべてぶつけたつもりでテキストを作りました。
私の会社の後輩からは、どんなテキストよりもわかりやすかった!や、
今まで教えてくれていた先輩や、テキストたちが、ちゃんと理解できていないことがわかりました。
と、嬉しいコメントをたくさんもらいました。
そしてなにより、彼らの社内での評価がとても高いということが、私の誇りです。
興味がある方はどうか、下のサイトをみてみてください。
http://mori.eco.to/
0143デフォルトの名無しさん
2008/01/21(月) 23:44:580144デフォルトの名無しさん
2008/01/21(月) 23:57:49なんとなく専門行ってなんとなく就職してって感じで技術的向上心がない奴は
いくらでもゴロゴロしてる。趣味でバリバリやってる奴の足元にも及ばない。
ただし、顧客にとっての結果が問われる厳しさはあるけど。
ウンココードをついでに直して、結果エンバグ…なんてしたら死刑。
0145この程度なら池沼にも理解できるはず
2008/01/23(水) 22:03:00** ハイブ(最上位レジストリキー)の名前を短い名前に変換する。
** 例 HKEY_CURRENT_USER\Software → HKCU\Software
*/
#define NULL 0x0
void BaibKeyName_LongNameToShortName(char *);
char BaibKeyLongName[7][23] = { "HKEY_CLASSES_ROOT\\", "HKEY_CURRENT_USER\\", "HKEY_LOCAL_MACHINE\\", "HKEY_USERS\\", "HKEY_PERFORMANCE_DATA\\", "HKEY_CURRENT_CONFIG\\", "HKEY_DYN_DATA\\" };
char BaibKeyShortName[7][23] = { "HKCR\\", "HKCU\\", "HKLM\\", "HKU\\", "HKEY_PERFORMANCE_DATA\\", "HKCC\\", "HKEY_DYN_DATA\\" };
int BaibKeyLongNameLen[7] = { 18, 18, 19, 11, 22, 20, 14 };
int BaibKeyShortNameLen[7] = { 5, 5, 5, 4, 22, 5, 14 };
void BaibKeyName_LongNameToShortName(char *key)
{
int i; char *tmpkey;
if((tmpkey = malloc(strlen(key))) != NULL) {
for(i = 0; i != 7; i++) {
if(!strncmpi(key, BaibKeyLongName[i], BaibKeyLongNameLen[i])) {
strcpy(tmpkey, BaibKeyShortName[i]);
strcpy(tmpkey + BaibKeyShortNameLen[i], key + BaibKeyLongNameLen[i]);
strcpy(key, tmpkey);
break;
}
}
free(tmpkey);
}
}
0146デフォルトの名無しさん
2008/01/23(水) 22:10:16char BaibKeyShortName[7][23] = { "HKCR\\", "HKCU\\", "HKLM\\", "HKU\\", "HKPD\\", "HKCC\\", "HKDD\\" };
int BaibKeyLongNameLen[7] = { 18, 18, 19, 11, 22, 20, 14 };
int BaibKeyShortNameLen[7] = { 5, 5, 5, 4, 5, 5, 5 };
■ このスレッドは過去ログ倉庫に格納されています