トップページ⇒tech
146コメント41KB

C言語って簡単だよな

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/10/07(日) 17:30:49
オブジェクト指向なんて意識しなくていいから覚えること少ないし。
型が厳格で、ポインタとかいう変態的な機能があるBASICだと思えば簡単だろ。
こんなので挫折する奴は池沼。
0096デフォルトの名無しさん2007/10/09(火) 15:28:29
COBOLでもやってた方がいいね。
あるいはMathematicaか。

なぜ6つを薦めたか?
好きな物以外のことでもちゃんと勉強しておかないと、周りと会話が通じなくなると思う。
0097デフォルトの名無しさん2007/10/09(火) 17:30:45
用途を明確にしないで言語の名前を列挙する奴は、プログラマの適性がゼロ。
ハサミだカッターだ、のこぎりの方がたくさん切れるって、頭が悪いにもほどがある。
0098デフォルトの名無しさん2007/10/09(火) 18:03:25
どうぐにつかわれるのではない。
どうぐはつかいこなすもの。
ぷろならつかえてあたりまえ。

みんなわかってるのに。
あたまがわるいとかばかとか、いちいちじぶんのことかかなくていいよ。
0099デフォルトの名無しさん2007/10/09(火) 18:05:34
さて、Haskellでも勉強するか。
0100デフォルトの名無しさん2007/10/09(火) 18:07:57
ウザいからHaskellスレでやれ。

関数型プログラミング言語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
>83 あぁ。それだ。

簡単だよな
0103デフォルトの名無しさん2007/10/11(木) 03:41:23
>>40使ってみた人いる?
0104デフォルトの名無しさん2007/10/11(木) 05:20:47
C言語は30個くらい覚えればいいだけだからアルファベットを書ける様になるより最初は簡単。

標準ライブラリのソースを覗いて、その簡単な命令群を鬼のように組み合わせて実現している
関数の中身を見て感動。

自前で実装しようとして涙目。
0105デフォルトの名無しさん2007/10/11(木) 06:25:01
C言語のどこが簡単なのか分からん。
何が処理系依存で何がコンパイラの独自拡張なのか把握するだけでも一苦労なのに。
0106デフォルトの名無しさん2007/10/12(金) 00:52:47
C言語が簡単だとかいってるやつは柴田本とか読んで、
サンプルプログラムを作って、無料のコンパイラでexeファイル
作って、簡単だなんて言ってるだけなんじゃねぇの

実務では格段の差を感じたのだが・・・
保守案件で他人のソースコード読んだことある?c++とcがごっちゃになったのとか、
スパゲッティコードとか
0107デフォルトの名無しさん2007/10/12(金) 02:52:53
>>103
カラー表示になって見やすくなったな
Win用にも移植してほしい
0108デフォルトの名無しさん2007/10/12(金) 08:17:24
スパゲッティコードって何?
0109デフォルトの名無しさん2007/10/12(金) 09:48:57
>>106
C++とCが混ざってるのは別にそこまで問題じゃなくね?
0110ぉぃぉぃ2007/10/12(金) 10:32:35
>>108
スパゲッティのように、均一な長さと太さを持った整然としたコードのこと。
0111902007/10/12(金) 12:08:07
>>106
> 保守案件で他人のソースコード読んだことある?c++とcがごっちゃになったのとか、
> スパゲッティコードとか

そういうのは言語の難しさ、ということとは関係がない。
0112デフォルトの名無しさん2007/10/12(金) 12:10:20
>>110
教えてくれてサンクス。
0113デフォルトの名無しさん2007/10/12(金) 21:23:55
信じちゃったの
0114デフォルトの名無しさん 2007/10/13(土) 05:00:04
焼きそばコードって言えばわかるんじゃね?

わかるわけねーか
0115デフォルトの名無しさん2007/10/13(土) 05:20:58
えへへー
0116デフォルトの名無しさん2007/10/13(土) 06:26:31
>>112
スパゲッティコードは、スパゲッティのようにからみあって複雑なコードのことだよ
>>110にだまされるな!!
0117デフォルトの名無しさん2007/10/13(土) 08:35:09
普通、スパゲッティって複雑に絡み合ったりしないよな。
0118デフォルトの名無しさん2007/10/13(土) 10:21:08
きっと作った直後はまだ絡まなくて、
時間が立つとほぐすことすら出来なくなることを示唆してんだよ。

と、こじつけてみる
0119デフォルトの名無しさん2007/10/13(土) 11:09:15
絡まないように油を絡めるだろ。常考
0120デフォルトの名無しさん2007/10/13(土) 11:34:04
絡まないようにコメントを絡めるだろ。常考
0121デフォルトの名無しさん2007/10/13(土) 17:44:15
エコナ
0122デフォルトの名無しさん2007/10/13(土) 21:40:05
で、結局、スレのテーマなんだったっけ
0123デフォルトの名無しさん2007/10/13(土) 21:42:03
パスタをほぐすのに適した油はなにか
0124デフォルトの名無しさん2007/10/13(土) 22:11:21
コードをほぐすのに適したコメントはなにか
0125デフォルトの名無しさん2007/10/13(土) 22:40:27
スパゲティーはソースを絡めるんだよ
0126デフォルトの名無しさん2007/10/13(土) 23:15:58
タバスコもいっしょにな
0127デフォルトの名無しさん2007/10/14(日) 05:34:13
俺の経歴

Java → 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:05
最近の組み込み環境だとC++提供してるのも結構ある印象。
armとかshとか。

C言語でオブジェクト指向は個人的には無駄な努力だと思う。
機能モジュールとして割り切っちまった方が分かり易い。

余談。
>>128の例はあんまりよろしくないように見える。
・Windowの生成/破棄関数もメンバに入れておくべき
・Componentが親クラスのつもりだとすると、
 継承すればするほどメンバへのアクセスが煩雑になる。
 というか、メンバにアクセスするために、
 何を継承したクラスなのか意識せにゃならんのはダメだろ。

結局Cでクラスっぽいもの作ろうと思うと、gtkみたいなことになるんじゃないのかなぁ。
Cで継承はムリがある。
(プリプロセッサでムリすれば何とかなりそう?
 例えばメンバを全部別ファイルにして#includeするとか。
 そんなソース見たくねぇ・・・)

あとは関数ポインタやら変数やらをリストの構造体で持って、
プロトタイプベースっぽくするとか。
組み込みには、っていうか仕事ではまったくもって向かないケド・・・。
0130デフォルトの名無しさん2007/10/14(日) 16:00:34
CoreFoundation舐めんなよ
0131デフォルトの名無しさん2007/10/15(月) 22:12:06
>最近の組み込み環境だとC++提供してるのも結構ある印象。
>armとかshとか。

自分もそれ使ってたんだけどさ、先輩がそれを見て一言

「まさかWindows mobileのアプリ作っておいて、
『組み込みやってます』なんて言ってるんじゃないのか?(・∀・)ニヤニヤ 」

いや、そうなんだけどさ
0132デフォルトの名無しさん2007/10/15(月) 22:42:16
C++でもりもり組み込み開発してます
RTTI使えないとか例外禁止とか制限はあるけど
0133デフォルトの名無しさん2007/10/16(火) 02:13:57
WindowsAPIのプログラムが、Cでクラスを作ることじゃないのか?
(正確には、WindowsSDKみたいな物を作ることか)
0134デフォルトの名無しさん2007/10/16(火) 22:31:52
>>133
なんか良く分からんけど、もそっと詳しく聞いてみたい気もする。
ハンドル持ち回してグリグリ操作するところらへんの話?
0135デフォルトの名無しさん2007/10/18(木) 13:29:41
Gtk+のC APIはオブジェクト指向C APIらしいよ。
ま、面倒なだけつーかんじだけど、バインディングは作りやすいだろうね。
0136デフォルトの名無しさん2007/10/18(木) 15:17:53
>>131

でもPICやAVRのような完全な組み込みようでもCが提供されている時代だから…
(Z80やら6502やら8085は言わずもがな…)
0137デフォルトの名無しさん2007/10/18(木) 22:10:45
Cでオブジェクト指向っつったらCore Foundationじゃないの?
0138デフォルトの名無しさん2007/10/19(金) 18:27:47
Cと最低限のマクロでオブジェクト指向のプログラムを書くメソッドがあったと思う。
構造体の使いかたはこうで、継承はこう書け、みたいな方法論が。
0139デフォルトの名無しさん2007/10/22(月) 05:16:43
>>134
WndProcとかDlgProcのメッセージ処理の部分が、C++のクラス書くのと同じじゃね?
0140デフォルトの名無しさん2007/11/06(火) 19:26:08
このスレを見ている人はこんなスレも見ています。(ver 0.20)
もし美少女ロボが自作できたら? 3体目【引越】 [未来技術]
■☆ 人工知能全般 Mode18 ☆■ [哲学]
長門有希が質問に答えるスレ [プログラマー]
0141デフォルトの名無しさん 2007/11/06(火) 21:52:05
http://sakura.bb-west.ne.jp/spr/damayan/saruc/object/index.html
ここのことかな
0142デフォルトの名無しさん2008/01/21(月) 20:07:59
Cプログラマの為に、ポイントをまとめたドキュメントを販売しています。
プロのプログラマでもあまりにレベルが低い人が多すぎます。
そんな人に限って、自分のレベルの低さを自覚していない、、、
 本人は構わないかもしれませんが、その下についた新人プログラマは
たまったものではありません。(私が経験しました。)
 今になって分かりました。
彼らもまた、理解できていなかったのです。
 プログラミング言語の一番の習得の近道はきちんと理解している人にアドバイスをもらうこと。です。
私のC言語に取り組んだ7年間をすべてぶつけたつもりでテキストを作りました。
 私の会社の後輩からは、どんなテキストよりもわかりやすかった!や、
今まで教えてくれていた先輩や、テキストたちが、ちゃんと理解できていないことがわかりました。
と、嬉しいコメントをたくさんもらいました。
そしてなにより、彼らの社内での評価がとても高いということが、私の誇りです。
 興味がある方はどうか、下のサイトをみてみてください。
http://mori.eco.to/
0143デフォルトの名無しさん2008/01/21(月) 23:44:58
プロでレベル低すぎるて、何それ。
0144デフォルトの名無しさん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:16
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\\", "HKPD\\", "HKCC\\", "HKDD\\" };
int BaibKeyLongNameLen[7] = { 18, 18, 19, 11, 22, 20, 14 };
int BaibKeyShortNameLen[7] = { 5, 5, 5, 4, 5, 5, 5 };
■ このスレッドは過去ログ倉庫に格納されています