☆C、C++、VC++ in 電気・電子版☆

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
C、C++、VC++など。
インラインアセンブラも含む。
2名無しさん@お腹いっぱい。:04/01/06 00:34 ID:daJ8iq4R
余裕で翌日2げっとずさぁ
っていうか、C++とVC++って違う言語なのかよ(w
3名無しさん@お腹いっぱい。:04/01/06 00:43 ID:fIPrM4kj
>>2
大丈夫ですか?
4名無しさん@お腹いっぱい。:04/01/06 00:48 ID:7IckswzN
プログラム板とどう差別化を図るんですか
5名無しさん@お腹いっぱい。:04/01/06 00:52 ID:GuvLmeSp
差別化は気にしてません。
ハードとの絡みで自然にできてゆくでしょう。
6名無しさん@お腹いっぱい。:04/01/06 01:12 ID:GuvLmeSp
>>2
使えるライブラリ(関数)の数が
VC++>C++>C
あと、VC++とC++はAPIを使えるけど、Cは純粋なCの関数のみで構成。
VC++はIDE環境(グラフィカル)が使えてMFCも使える。
こんな説明でいいのかな。あってますか?
7名無しさん@お腹いっぱい。:04/01/06 08:06 ID:KJh5bH/K
C++とかはこの板ではあまり話題にならないんじゃない?

Cはマンセー
8名無しさん@お腹いっぱい。:04/01/06 10:40 ID:h+SaWo0V
C と C++ はプログラミング言語

VC++ はマイクロソフト社が出している
プログラム開発環境(のパッケージソフト)。
(C++(C含む)のコンパイラ、Winライブラリ、
リンカ、IDE環境など含む)
同レベルで比較しているのに無理がある。
9名無しさん@お腹いっぱい。:04/01/06 21:31 ID:LBodGd9m
DDK絡みのネタが欲しいな
10名無しさん@お腹いっぱい。:04/01/10 18:17 ID:zHb4kiaN
電気いじるのにC++が必要になる場面って有るか?
11名無しさん@お腹いっぱい。:04/01/10 19:04 ID:Ei9FcI60
eCosのアプリケーションを書く時。
そんな事があるのか謎だが。
12名無しさん@お腹いっぱい。:04/01/10 19:06 ID:asUjLl0x
13名無しさん@お腹いっぱい。:04/01/11 00:31 ID:d+luu4mP
>>10
マイコン構うなら知ってて損は無いと思うぞ
14名無しさん@お腹いっぱい。:04/01/11 09:43 ID:LVWDWOm5
C++に慣れすぎるとマイコンのプログラムをCで書かないといけないときに身悶えしません?
といっても、C++は避けては通れないように思いますが。
15名無しさん@お腹いっぱい。:04/01/11 14:01 ID:/N+I/qz9
>>14
僕にとってC++は「コメントが//で書けて、変数宣言がどこでも出来るC」でしかありません。
もちろんファイル入出力は fopen , fgets fputs しか使いませんし。
16名無しさん@お腹いっぱい。:04/01/11 14:09 ID:8tn0CuWv
>>15
シリアルでやる分には、それが簡潔かも。
ETHERとか、USBになってくると、最初環境設定のレジスタを調べるのが大変かも。
直接Pin叩くわけだし・・・。
17名無しさん@お腹いっぱい。:04/01/11 16:41 ID:vM0NIDMt
>>14
コンパイラが何でも通してくれちゃうからドキドキします。
ケアレスミス大魔王なんで。
18名無しさん@お腹いっぱい。:04/01/11 18:40 ID:C70xLiNE
>>17
デバッガ使(r
19名無しさん@お腹いっぱい。:04/01/11 18:44 ID:uHLh5Apa
>>17
ワーニングレベル上げろ。
20名無しさん@お腹いっぱい。:04/01/11 18:51 ID:cKVW7har
Cはプログラマの自己責任において自由にできるのがいいところだからね。
ケアレスミスチェックのためにlintを使うのが古きよき時代のCなんだが。
21名無しさん@お腹いっぱい。:04/01/11 20:08 ID:lHqwVBNE
といっても好き勝手に書くと、最近はコンパイラの警告がうるさい。
わかってるから黙ってろと言いたい。

かといって止めると,うっかりミスが隠れるのでそれも困るし。
22名無しさん@お腹いっぱい。:04/01/11 20:35 ID:aYsRrV4P
HEWのCコンパイラは、ウォーニングすらまともに出してくれないので、
マジで俺はlintかけてる。

ウォーニングを出さないだけならまだしも、キャストを(ry
23名無しさん@お腹いっぱい。:04/01/12 13:04 ID:gphUPTro
>>22
いまだにそんな状態なのか…
24名無しさん@お腹いっぱい。:04/01/12 13:20 ID:wsiZsBik
>>23
社内統一環境とかわけのわからんの理由もあって一個前のコンパイラですが、
なかなかに泣かされてます。
怖くてオプティマイズなんか指定したことがないです。

欠点は多いですが、コード効率はgccに比べると、だいぶ良いので我慢してます。

# 趣味ではKPITのgccが、もう少し速いコードを吐いてくれるようになったら乗り換えたいのですが。
# HEW2.2も無料で落とせますし。
25名無しさん@お腹いっぱい。:04/01/14 15:49 ID:IQFZAXJk
>>13
ファームからドライバ、アプリまで作ってるのでアセンブラからC++まで使えてまつ。
私の場合、電気を直接いじる程度の機械の時には、動的メモリ取得ができるほどの容量が無いことが多いでつよ。
アプリの開発ではSTLの勉強にはまってる最中でつ。
>>17
うちの環境のCはプロトタイプが無くてもwaring出さないので最近もはまりまつた。
引数無しで飛んでいっても文句言わなかったりしてくれて…
>>24
うちはオプティマイズするとデバッグコードを吐き出すときにエラーを起こす環境なので
エミュレータを使うときにはオプティマイズできまてん…何のためのオプションなんでせう
#いいかげんまともなコンパイラ作ってくれ>某社
26かるかる:04/01/18 00:51 ID:hzWNLuKi
VCでプログラムをしているんですけども
PICとシリアルの通信プログラムがわかりません。
ウインドウでハイパーターミナルみたいなことをやりたいんだけど
プログラムがわかりません
福福電子工房のプログラムをウインドウに組み込めないか?とおもうんですが
できません
PICとシリアルの通信プログラムを書いているホムペかプログラム例を教えてください。
27名無しさん@お腹いっぱい。:04/01/18 14:03 ID:7YWGupT3
28かるかる:04/01/18 14:35 ID:0ds61fDc
>>27
ありがとうございます
参考にさせていただきます。
29名無しさん@お腹いっぱい。:04/01/22 05:43 ID:48TiayCH
>>24
ターゲットCPU何かしらないけど、
386系ならmingwのコードはVCより速いって聞いたけどね。
30名無しさん@お腹いっぱい。:04/01/22 23:31 ID:JtMylsot
>>29
HEWと書いてあるんだからH8かSHと思われ>ターゲットCPU
31名無しさん@お腹いっぱい。:04/01/23 00:30 ID:Kiq0ELwk
Cでプログラムを組むには、intと記述してもビット長をあらかじめ設定しないと
バグの原因になる。
short int,unsigned short int,long int,unsigned long intを使い分けないといけない、
って常識?
32名無しさん@お腹いっぱい。:04/01/23 07:39 ID:odI2d2ud
常識
33名無しさん@お腹いっぱい。:04/01/23 13:38 ID:SWWnGgbP
>>32
つーか、組み込み系Cとか非MS-C系で組む場合には、最初に調べるのが型の長さ(何ビットか?)だよね。
short intがbyteじゃなくてword扱いとかってのは一杯ある。
それを調べてから組むのが常識だろ?
34名無しさん@お腹いっぱい。:04/01/23 17:13 ID:Xa/xXO18
>>31
だからAVRGCCなんかはbit数と符号有無で表記する型名を使っているのかな。
unsigned char = uint8_t
signed long = int32_t
なんて置き換えて使わせている。
35名無しさん@お腹いっぱい。:04/01/23 17:26 ID:Rdq0wzYr
>>34
移植性を考えた場合は必ずそういうのが必要でつ。
36名無しさん@お腹いっぱい。:04/01/24 16:53 ID:W2Czhpzx
>>34
C99の規格読め。(stdint.h)
JISもC99対応に改定されている。
http://www.jisc.go.jp/ から「データベース」でX3010を検索。

しかし移植性などを考えない(コンパイラ依存)も一つの解法だよな。
37774ワット発電中さん:04/05/24 00:27 ID:Ck3FXT2Y
あげ
38774ワット発電中さん:04/10/20 11:02:32 ID:t7VMx3+6
ho
39職人:05/01/17 05:21:01 ID:feSdjnZh
>>26
VBにすれば
40774ワット発電中さん:2005/06/05(日) 11:02:51 ID:hF1Oi6Ua
C++について勉強しようと思います。簡単なCのプログラムは書けます。
先ず1冊目に読むには、どれがよいでしょうか。
次に2冊目を読むには、何がよいでしょうか。
41774ワット発電中さん:2005/06/05(日) 12:35:18 ID:k7kwaF0+
複雑なCのプログラムが書けるようになってから出直してきた方が良いです
42774ワット発電中さん:2005/06/05(日) 15:13:56 ID:3E1hZYyu
出直してきます。ではでは
43774ワット発電中さん:2005/06/07(火) 00:35:15 ID:SXJVCONs
恐れス スマソ
ちょっと癖があるが、お勧め
「極めるVisualC++」吉田弘一郎 技術評論社

最近新しいVCの本はあまり出版されないようだね。もはや行き渡っちゃた?
44774ワット発電中さん:2005/06/07(火) 15:59:22 ID:9LSOAyrC
Builderよかマシ。
45774ワット発電中さん:2005/07/20(水) 15:14:55 ID:+axUgwEq
C++の多重継承の質問をしたいのですが、
菱形の継承で一番基本となるクラスのコンストラクタに
引数を渡したい場合どうすればいいのですか?
今、下の様にしてるんですがコンパイル時にエラーが出ます。
問題点と解決法をどなたかご教授ください。

class Base0 {
  public:
   Base0(int b0) {}
};

class Base1 : virtual public Base0 {
  public:
   Base1(int b0) : Base0(b0) {}
};

class Base2 : virtual public Base0 {
  public:
   Base2(int b0) : Base0(b0) {}
};

class Derived : public Base1, public Base2 {
  public:
   Derived(int b0) : Base1(b0), Base2(b0) {}
};
46774ワット発電中さん:2005/07/20(水) 21:28:59 ID:RaC1pKXb
こうとか。
#include <stdio.h>
class Base0 {
public:
    Base0() {printf("void\n");}
    Base0(int b0) {printf("int b0\n");}
};
class Base1 : virtual public Base0 {
public:
    Base1(int b0) {}
};
class Base2 : virtual public Base0 {
public:
    Base2(int b0) {}
};
class Derived : public Base1, public Base2 {
public:
    Derived(int b0) : Base0(b0), Base1(b0), Base2(b0) {}
};
int main(void) {
    Derived obj(0);
    return 0;
}
47774ワット発電中さん:2005/07/20(水) 22:02:39 ID:RaC1pKXb
こういう例のほうが分かりやすいかな
#include <stdio.h>
class Base0 {
public:
Base0(int b0) {printf("Base0:%d\n",b0);}
};
class Base1 : virtual public Base0 {
public:
Base1(int b0) : Base0(b0+10) {printf("Base1:%d\n",b0);}
};
class Base2 : virtual public Base0 {
public:
Base2(int b0) : Base0(b0+20) {printf("Base2:%d\n",b0);}
};
class Derived : public Base1, public Base2 {
public:
Derived(int b0) : Base0(b0+1), Base1(b0+2), Base2(b0+3) {printf("Derived:%d\n",b0);}
};
int main(void) {
Derived obj(0);
return 0;
}

>>45 が何故だめなのかは、virtualとったもの(DerivedのBase0の初期化も取る)と比べれば
分かると思う。
4845:2005/07/21(木) 15:20:40 ID:7kzEYILR
どうも教えて頂いてありがとうございます。

見たところ、
Derived のコンストラクタでBase0のコンストラクタを
明示的に呼び出しているところがポイントのようですね。

コンストラクタは基本クラス側から実行されるってのは知ってましたが、
継承が2代にわたる場合で、親が祖父を仮想基本クラスとする場合、
孫クラスのコンストラクタで
親のコンストラクタ(祖父のコンストラクタを引数ありで呼び出している)
を呼び出しても、孫クラスで祖父のコンストラクタを直接呼ばない限り、
祖父のコンストラクタは引数なしで呼ばれてしまうと言うことでいいのでしょうか?

仮想基本クラスを使わない場合は
親のコンストラクタを呼べば、
祖父のコンストラクタに引数が渡されていたので、
問題点&解決策がよくわかりませんでした。
49774ワット発電中さん:2005/07/21(木) 15:28:26 ID:7kzEYILR
もしかして、仮想基本クラスを用いたとき、
そのコンストラクタから派生元のコンストラクタを呼ぶ記述をすることは
全く無意味なのでしょうか?

結局、仮想基本クラスとしていると言うことは、
そのさらに派生したクラスが必要であり、
その派生クラスで、
一番基本となるクラスのコンストラクタを呼び出す必要がある。
ということなのでしょうか。

ネットでいろいろと見たりはしたんですが、
仮想基本クラスについては
どこもあまり詳しくは書いてなかったので大変助かりました。
50774ワット発電中さん:2005/07/21(木) 15:54:45 ID:7kzEYILR
まあ、言い換えればvirtualはあくまで仮想であるから、
そのクラスが親クラスを直接コンストラクトすることはない。

という風にとらえるといいのでしょうか?
51774ワット発電中さん:2005/07/21(木) 19:18:09 ID:TRaBNY+9
>>49
下記のような継承の場合、Derived のスーパークラスに2つのBase0を持つ。
class Base0
class Base1 : public Base0
class Base2 : public Base0
class Derived : public Base1, public Base2

一方下記のような継承の場合、Derived のスーパークラスにBase0は1つしか存在しない。
class Base0
class Base1 : virtual public Base0
class Base2 : virtual public Base0
class Derived : public Base1, public Base2

まずこれは良いよね。
下の例の場合、Base0は1つしか存在しないのにそのスーパークラスから、おのおの違うコ
ンストラクタが呼ばれたりしたら困るよね。
だからその継承先であるDerivedからBase0のコンストラクタが呼ばれる仕組みなのよ。

> もしかして、仮想基本クラスを用いたとき、
> そのコンストラクタから派生元のコンストラクタを呼ぶ記述をすることは
> 全く無意味なのでしょうか?
半分違う。
Base1とBase2が仮想クラスの場合。
 Base1やBase2のオブジェクトを作ったときには使用される。
 Base1をさらに継承する場合は、その継承先(Derived)では無視される。
52774ワット発電中さん:2005/07/21(木) 20:33:20 ID:TRaBNY+9
>Base1とBase2が仮想クラスの場合。
俺が混乱しているw
この場合仮想クラスと呼べるのはBase0だね。
「Base1,Base2がBase0を仮想継承している場合。」に訂正。
5349:2005/07/22(金) 13:37:34 ID:8lwVRgWL
>>51
少し混乱してきたのですが、

Base1,Base2がBase0を仮想継承している場合に、
Base1やBase2のオブジェクトを作ることはできるのですか?

もし、Base1、Base2それぞれのオブジェクトを作った場合、
Base1とBase2のスーパークラスのBase0は
それぞれ別の物となるということでしょうか?

54774ワット発電中さん:2005/07/22(金) 18:56:36 ID:QeaTfv6C
>>53
> Base1,Base2がBase0を仮想継承している場合に、
> Base1やBase2のオブジェクトを作ることはできるのですか?
出来るよ。
出来ないのは純粋仮想クラスと呼ばれるもので、仮想継承し
ているスーパークラスとは全く別物。

純粋仮想クラスとは、純粋仮想関数と呼ばれる関数を含んでい
るクラスで、普通に継承するか仮想継承するかは全く関係ない。
例を挙げるとBase0が純粋仮想関数を含むならば、
class Base1 : public Base0
class Base1 : virtual public Base0
のどちらで継承しようがBase0は純粋仮想クラス。
55774ワット発電中さん:2005/07/22(金) 19:07:40 ID:QeaTfv6C
>>53
> もし、Base1、Base2それぞれのオブジェクトを作った場合、
> Base1とBase2のスーパークラスのBase0は
> それぞれ別の物となるということでしょうか?
これはそう。
#include <stdio.h>
class Base0 {
public:
    int m_b0;
    Base0(int b0) {printf("Base0:%d\n",b0);m_b0 = b0;}
};
class Base1 : virtual public Base0 {
public:
    Base1(int b0) : Base0(b0+10) {printf("Base1:%d\n",b0);}
};
class Base2 : virtual public Base0 {
public:
    Base2(int b0) : Base0(b0+20) {printf("Base2:%d\n",b0);}
};
class Derived : public Base1, public Base2 {
public:
    Derived(int b0) : Base0(b0+1), Base1(b0+2), Base2(b0+3) {printf("Derived:%d\n",b0);}
};
int main(void) {
    Derived objD(0);
    Base1   obj1(0);
    Base2   obj2(0);
    printf("--\nDerived:%d\nBase1:%d\nBase2:%d\n",objD.m_b0,obj1.m_b0,obj2.m_b0);
    return 0;
}
56774ワット発電中さん:2005/07/22(金) 20:18:31 ID:gYDJ1gBF
ところで仮想継承なんて、何に使うつもりだ?
57774ワット発電中さん:2005/07/24(日) 14:30:47 ID:NTqzDtDx
>>54
抽象クラス
58774ワット発電中さん:2005/07/24(日) 20:24:40 ID:LWTYhd5z
>>57
彼は何が言いたいのだろうか?
59774ワット発電中さん:2005/07/24(日) 20:30:06 ID:NTqzDtDx
純粋仮想クラスなる用語は一般的ではない

struct X { virtual ~X() = 0; }; inline X::~X() { }
なるクラス X を一般には抽象クラス (abstract class) という
60774ワット発電中さん:2005/07/24(日) 20:39:37 ID:LWTYhd5z
>>59
十分一般的だと思うけど・・・
61774ワット発電中さん:2005/07/24(日) 20:48:18 ID:NTqzDtDx
>>60
はい、そうですか
争う気はありません
62774ワット発電中さん:2005/07/24(日) 20:57:57 ID:LWTYhd5z
ひょっとしてそういう呼び方を知らなかった?
63774ワット発電中さん:2005/07/24(日) 21:22:47 ID:NTqzDtDx
争う気はないので、その言い方には答えません
64774ワット発電中さん:2005/07/24(日) 21:28:20 ID:Px5GiprG
おれは知らんかったからぐぐってみた。

純粋仮想クラス の検索結果のうち 日本語のページ 約 65 件
抽象クラス c++ の検索結果のうち 日本語のページ 約 3,500 件

規格文書(JISX3014)では、抽象クラスについて、「少なくとも一つの純粋
仮想関数を持つとき、抽象クラスとなる。」と書いてある。
ただで読めるJISは検索できないから、純粋仮想クラスという言葉が使われ
ているかは分からん。

争う気はありません。
65774ワット発電中さん:2005/07/24(日) 22:45:06 ID:LWTYhd5z
彼は57の時点では知らなかったわけだ。
だからああいう突っ込みを入れた。その後、少し恥ずかしいこ
とに気づいて59で一般的ではないとやや趣旨を変えた。
と、こういうことだろ?
66774ワット発電中さん:2005/07/25(月) 05:06:29 ID:VY2xSFUB
オブジェクト指向的な話題をしているときには
「抽象クラス」って言っておく方が了解を得られ易いよ。
67774ワット発電中さん:2005/07/25(月) 19:55:01 ID:CqTc5guh
C++の話題の時は「抽象クラス」って言っておく方が了解を得られ易いよ。
規格でもStroustrupの書籍でもそう書いてあるから。

「純粋仮想クラス」ってどこから来た言葉か教えてほしい。>>65
6854:2005/07/25(月) 20:31:51 ID:LAdytwkZ
俺が書いた文章が波紋を呼んでいますね。
ちなみに俺の持ってる本には全て「抽象クラス」と書いてありますw。
俺がそういう表現を使ったのは、深い意味はなく、webを調べていたら
純粋仮想クラスという表現があったからです。
それが正しい抽象クラスの呼び方かどうかは知りません。
市民権ぐらいはありそうですが。
69774ワット発電中さん:2005/07/26(火) 07:11:28 ID:NvfItZrz
virtual class hoge = 0;
70774ワット発電中さん:2005/08/16(火) 20:20:33 ID:Pktl2sSb
漏れは哀れな中卒です(TAT)
未だにC++も書けません。本を買いたいのですが何が良いか教えてクリ
K&RのCは1987年ごろやりました。1章の演習問題はなんとか丸一日
かけてでできますた。哀れな中卒なので仕事に恵まれず、今まで
一番大きなプログラムは自分の分だけでつが4M(mega)BYTESのサイズでつ。
頭が悪いのでステップ数が思い出せません(TAT)
恵まれない漏れをタスケテクリ
71774ワット発電中さん:2005/08/16(火) 21:26:24 ID:OHbI4r4V
>>70
中卒かどうかは単にスタートラインでしかない
社長になった中卒なんてそこいら中にいるし今日び放送大学で修士まで取れる(専攻はともかく)

で、K&R でそこまで頑張る根性あるなら、迷わず TCPL か the Design and Evolution of C++ ね
それと、ここ
http://research.att.com/~bs
むさいオサーンのページだけど、我慢して読んでみれ
JIS X3014 は規格票のくせにテキストとして意外にいけてたりもする
72774ワット発電中さん:2005/08/17(水) 01:35:47 ID:u+xUugxm
>>71
どもです。頁みてきますた。
http://www.research.att.com/~bs/3rd.html
これの2nd editionの日本語訳があったので本屋で買ったのでつが、
日本語がえらい抽象的で、加えて頁数が大量で困ってまつ。

この日本語訳の難しい訳文なら原書のほうが楽かな?とも
思うのでつが、それでも頁の分量には閉口するばかり。

もっと薄い頁の本でANSIIが決めたらしい新しい規格のC++を
短時間で読み切れ、習得できる本は無いでしょうか?

石田先生だったか(?)K&Rの日本語訳は非常に読みやすい日本語文章でしたが、
どうも、C++の訳本の日本語の難しさにはほとほと困って、
またこの厚みではいつ読み終えるか知れません。
73774ワット発電中さん:2005/08/17(水) 07:01:22 ID:wz1doviu
MISRA-Cは知らない人は知っといた方が良いね。

MISRA-C++も進行中
74774ワット発電中さん:2005/08/17(水) 19:47:12 ID:mlie66fO
>>72
規格票を読め。
75774ワット発電中さん:2005/08/17(水) 23:21:35 ID:u+xUugxm
>>74
ANSIの何かでつか? 読む気しません・・・

C++では、コンストラクタ、ディストラクタなど、
処理系に(Cでは想像もできないような)特別な仕掛けがあって、
その説明も、C++ 2nd editionは良く書いてないです。(ぼんやりと抽象的に書いてある。)
そういうc++での組み方の考え方が、明快に簡潔に具体的に書いてる本
売ってますかねぇ? 分厚い本は、時間的にムリポ
76774ワット発電中さん:2005/08/18(木) 02:38:10 ID:gUmsV48l
Cで想像するならただの構造体の初期化だろ
77774ワット発電中さん:2005/08/18(木) 02:39:14 ID:gUmsV48l
あと関数へのポインタのルックアップテーブルの初期化もしてるが
78774ワット発電中さん:2005/08/18(木) 08:17:21 ID:TiprTnNR
コンストラクタ、ディストラクタの仕組みは、C++でできた
初めての仕掛けと思いまつ。
コンストラクタ関数:変数の割り当てと初期化
ディストラクタ関数:変数の破棄
これらの関数が自動的に呼び出せるようにして、メモリ管理を
実現してるのは、トラディショナルなプログラマには、驚きの仕掛けでつ。
Cは簡素な言語体系で、当然そのようなメモリ管理は、
OSにプログラムして自分で作ることをやるしかなかった。
これが運動図では、メモリーリークの問題で世に有名になった。
79774ワット発電中さん:2005/08/18(木) 20:21:39 ID:hKd+OafJ
>>75
JISはただで読める。
www.jisc.go.jpのデータベースからX3014を検索。

しかし抽象的ってどういう意味で書いてるのか分からんけど、
きちんと書いてあると思うがなあ。

>>77みたいな話を知りたいならコンパイラの出力を読んだら?
80774ワット発電中さん:2005/08/19(金) 22:04:29 ID:shAGV53b
>>75
2nd Ed. を読んだ感想がそうならあきらめろ
81774ワット発電中さん:2005/08/20(土) 09:43:09 ID:gn6z2pf+
>>80
2nd Ed.はあきらめたほうがよさそうです。時間がかかり杉。
あの文章は和訳してしまうと、意味がロストして、かえってわからなくなるのかしら?
作者のWEBPAGEの英文はわかりやすい文なので、和訳が悪いのかな?

CプログラマのためのC++ という本があるらしいのですが、
ANSI規格に対応していないらしい。
どうやら実用的な、使えるC++教本が無いのかな?
誰か書いてクリ

2nd Ed. 8000円も出してかうんじゃなかった。K&Rの易しさを期待したのだが
失敗
82774ワット発電中さん:2005/08/20(土) 17:39:19 ID:JIVjcu9s
原著が欲しければ洋書のコーナーへ行けば簡単に手に入る

# あの >>70 様にこんなコメントせにゃならんこと自体に正直がっかり
83774ワット発電中さん:2005/08/20(土) 18:28:16 ID:W9hX/+Ox
C++のコンパイラがどんなコードを吐くのか知りたい、
C++のコンパイラ書きたいとか。

それとも単にC++でプログラムが書けるようになりたいとか。

後者なら、そこらの適当に読みやすそうな入門書で十分じゃないかな。
84774ワット発電中さん:2005/08/20(土) 19:38:28 ID:JIVjcu9s
じゃ、入門書読んだだけでシミュレータとか書いてみろよ
SystemC だってメンバポインタとか出てくるぞ
85774ワット発電中さん:2005/08/20(土) 20:31:49 ID:gn6z2pf+
>>82
哀れな中卒の漏れです。期待にかなわずスマソ orz
悲しいかな、C++作者は、頭のできが漏れとは全然違うんです。
作者の抽象的な言い回しをすぐに理解できるような頭を
漏れがもっていれば、躊躇無く原書を買ったと思います。
MFCにたどりつけないことを漏れ自身も情けなく思っています。
仕事でC++が必須でないことを口実に、最近でもCを主に使っていますが、
C++Builder等のGUI開発ツールを使いこなすためにもC++習得は必須で、
なんとかWindowsの世界に入れないものかと日々思っているんです。
Windowsのプログラムを組める人は正直羨ましいです。
今C++演習をネットで検索して、勉強を始めてはいますが、
できれば教本が欲しいのです。甘えすぎでしょうか。
86774ワット発電中さん:2005/08/20(土) 20:38:24 ID:JIVjcu9s
Windows アプリなら C++ は必要ない
C で十分、COM まで書ける

このへんで聞いてみな
http://pc8.2ch.net/test/read.cgi/tech/1122723009/
87774ワット発電中さん:2005/08/20(土) 20:51:48 ID:gn6z2pf+
>>86
”もうずっと人大杉”
でMS-IEではだめみたいです。
2ch専用ブラウザでないとだめみたいです。
有料サービスみたいなことが書いてあります。
88774ワット発電中さん:2005/08/20(土) 21:04:02 ID:7Ute7eOR
>>85
山本信雄氏の「VisualC++ はじめてのWindowsプログラミング 1〜3」を勧める。
1冊1600円するのでとりあえず1だけ買って気に入れば残りをそろえれ。
2は君の嫌いな抽象的な話も多いので1と3だけでもいいかも。
89774ワット発電中さん:2005/08/20(土) 21:05:26 ID:7Ute7eOR
違った1冊2600円だ。たけ〜なこの本・・・
でも価値はあると思うよ。
90774ワット発電中さん:2005/08/20(土) 21:25:42 ID:1u0AkpaK
要するに言語の解説でなくてサンプルプログラムが欲しいのか。
91774ワット発電中さん:2005/08/20(土) 21:51:11 ID:JIVjcu9s
猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
92774ワット発電中さん:2005/08/21(日) 22:46:19 ID:EGWn8zI7
一見回り道のようだけど、別の言語の本よむと

(たとえば 「Eiffel オブジェクト指向入門」 とか)

C++に対しての理解も深まるよ


しかーし、amazonには在庫なし・・・
http://www.amazon.co.jp/exec/obidos/ASIN/4756100503/
93774ワット発電中さん:2005/09/25(日) 03:50:01 ID:qHPCIDLp
オブジェクト指向言語の解説

て書かれてる本は、特定の
言語を対象にしてないよ。





まともな本ならね。
94774ワット発電中さん:2005/11/27(日) 20:29:58 ID:h0FXxX8p
WindowsのAPIで、シリアルポートからキャラクタが全て出力されたタイミングを
知る方法って無いですか?
WaitCommEventとかだと、ドライバにキャラクタが渡った時点でEV_TXEMPTYが
返ってってきてしまうので、
本当にハード的に出力完了したタイミングが分からないんですけど。
95774ワット発電中さん:2005/11/27(日) 20:59:52 ID:gOBgLl+1
>>94
折り返して受信してみるとか。

そこまでシビアなタイミングを窓に要求するのが間違いな気がしないでもないが。
9694:2005/11/27(日) 23:48:43 ID:h0FXxX8p
>>95
やっぱり厳しいですか。
DOS時代のハード直接叩きまくりのソフトを
Windowsに移植するのは無理なのかもしれませんね。
97774ワット発電中さん:2005/12/01(木) 11:09:40 ID:lnEPfT0f
9894:2005/12/01(木) 20:44:26 ID:0hg0iHsv
>>97
どうも。
レガシーポートのあるパソコンなら使えそうですね。
でも、直接叩くと言うことは、USB-シリアル変換器はダメなんでしょうね。
99774ワット発電中さん:2006/01/30(月) 21:45:33 ID:l5dgWVKL
>>98
もちむり
100774ワット発電中さん:2006/01/31(火) 06:38:50 ID:o2GVn9Qe
シリアルのRTS端子を単に最短時間でON/OFFするようなプログラムを書いて、
1)PC標準搭載のシリアル、WindowsAPI
2)PC標準搭載のシリアル、GiveIO/DirectIO等
3)USB-シリアル変換、WindowsAPI
で速度を比較すると「えっ!」っていうような結果になるよ。
101774ワット発電中さん:2006/02/28(火) 22:24:57 ID:NVY9dwo5
結果置いてけよ
102774ワット発電中さん:2006/03/12(日) 15:25:12 ID:jleluuK+
3) >>> 2) >>>>>> 1)

じぁまいか?
103774ワット発電中さん:2006/03/13(月) 01:51:20 ID:FS/BOt6v
>>101
自分のPCでやってみたらいい。

ちなみにうちのPCで単純ON/OFFを出力させてみたら
1) 約60kHz
2) 約80kHz
3) 約180Hz

1)と2)が思ったほど差がないのに対して
3)が桁違いに遅い。
ドライバーの違いとかもあるんだろうな。
104774ワット発電中さん:2006/08/20(日) 23:19:14 ID:UQjPi9sZ
age
105774ワット発電中さん:2006/08/23(水) 17:48:16 ID:tX8sRKMk
>>100
チョー亀レスだが、1)と2)はそんなに違いない
106774ワット発電中さん:2006/11/15(水) 11:48:40 ID:8RayT1qf
スレ違いだったらスマン。
高校生に毛が生えた程度の卒業研究に使えるような
C言語のプログラムを教えてくれないか?
107774ワット発電中さん:2006/11/15(水) 17:19:57 ID:y//EGCbI
int main(void)
{
while((高校生+毛)==106){
printf("〜");
}
}
108774ワット発電中さん:2006/11/15(水) 22:13:42 ID:YCZhQ5+h
ロボコンとか見てると、最近の高校生は実践つんでるからなー。
マイコン使えて当たり前、FPGA使えて当たり前、C使えて当たり前。
遊びほうけてるW大生よりはるかに優秀(w
109774ワット発電中さん:2006/11/25(土) 01:08:20 ID:rXYSIXjv
H8を初めてCでプログラム組みたいんだけどどの本で勉強するのがいい?
アセンブリ言語での経験はあります。
110774ワット発電中さん:2006/12/18(月) 00:16:14 ID:iVQocjg7
Cでモールスのアルファベットの音を出すプログラムはどうすれば
いいでしょうか。教えてください。
111774ワット発電中さん:2006/12/18(月) 00:56:55 ID:KTDixqvA
Cにもよるけどとりあえず音の出し方探せよ
後は長短無音の3つの音声ファイル用意して流せばいいじゃない
112774ワット発電中さん:2007/02/18(日) 16:21:38 ID:xMhDPKD6
>>103
亀だけど、パラレルポートで010101と書き込んでやってみたら
20MHzとか出たんだけど・・・

ちなみに故モルフィーのUSB-IOでやったら10KHzもでなかったよ。
113774ワット発電中さん:2007/02/28(水) 19:25:56 ID:VjljiuTn
ものすごい初心者なんでアホなこと聞きますが、Cで作ったプログラムって
VC++でもできるんですか?
114774ワット発電中さん:2007/02/28(水) 21:22:45 ID:3uWyAbvi
c++は大体においてcを含む
115は@c178.016.c3-net.ne.jp ◆cplnFO9T0I :2007/03/04(日) 00:06:10 ID:DTnrL2zY BE:363139698-2BP(1000)
>>113
物凄く抽象的なことでわからない。
単なるhello worldなら普通にいけるがw
C用に書かれているとしても処理系依存の場合だってあるし、動かす環境への依存だって発生する。
例えが悪いかも知れないけどUNIX上でsystem("dir")されても動くわけ無いでしょ。
116774ワット発電中さん:2007/03/04(日) 14:00:13 ID:xhy7Q9iD
>>114
だいたいじゃなくてC++はCの拡張
117774ワット発電中さん:2007/03/04(日) 14:15:46 ID:Vrjsm8Uh
>>89
安い部類では。

その価格帯の本は「何度読んでも新たな発見がある」ということが少ない。
118774ワット発電中さん:2007/03/04(日) 14:16:35 ID:77zhobwi
C++をCの上位互換言語として使ってる人も多いと思う。
119774ワット発電中さん:2007/03/04(日) 14:33:27 ID:Vrjsm8Uh
プログラミング言語はただの設計表現手段でしかないな。

「状態遷移表?状態遷移図?ハァ?何それ」
「とりあえずグローバルなフラグ変数作りまくってるよ」

というような人間なら、Cを使おうがC++を使おうが関係ないと思う。
C++の価値も引き出せない。
120774ワット発電中さん:2007/03/04(日) 14:51:20 ID:77zhobwi
それはいえてる。
121774ワット発電中さん:2007/03/06(火) 17:44:47 ID:YHhAZzc8
>>115 正解です ♪♯♭

ここをよく利用する
http://www.linux.or.jp/JM/index.html

122774ワット発電中さん:2007/03/06(火) 22:16:07 ID:vCpVLJzf
123774ワット発電中さん:2007/03/11(日) 03:50:16 ID:lY4PhK8Y
>>851-852

ありがとうございます。

で、CTで必要な電流を取り出すわけですが、これって1:1で出ると考えて良いでしょうか?
また、この2次側に適当な抵抗をつけてその両端の電圧からの比を出せば、電流値が求められると思いますが、この時使おうと思うデジタルオシロのプローブは通常使う弱電用のもので吹っ飛ぶことはありませんでしょうか?

一応、星一徹親子を見守る姉のように、若しくは、ベンチとダッグアウトの通路から半身で試合を見守る古葉元監督のように測定を行うつもりです。
124774ワット発電中さん:2007/03/11(日) 04:00:28 ID:lY4PhK8Y
スマセン
誤爆でした
125774ワット発電中さん:2007/06/10(日) 02:58:02 ID:rwtsm0Nz
(・∀・≡・∀・) ダレモイナイ
126774ワット発電中さん:2007/10/19(金) 21:48:18 ID:Z4mJs4kD
VC++ 6.0 において HtmlView を ベースに使ってブラウザを開発しているのですが、マウスの左ボタンクリックをカスタマイズ
する方法がわかりません。どなたか情報ください。
127774ワット発電中さん:2008/05/19(月) 09:03:34 ID:F+pOnlDM
VC++初心者です
VC++6.0でアプリを作ってるんですが、ダイアログベースでボタンをPCのキーボードと対応させたいんですが
PreTranslateMessage(MSG* pMsg)という関数を使う所まではわかったんですが、
case文で分岐させる場合、Shiftを押しながらキーを押した時は別の処理をするプログラムを書きたいんですが
今現在、私の記述ではShiftボタンのみを受け付ける状態なんですが、何か回避方法はありますでしょうか??

case VK_Shift:
switchswitch(pMsg->wParam){
case VK_UP:
      -----関数------
}

みたいな感じで書いてます
128774ワット発電中さん:2008/05/21(水) 01:41:33 ID:ESHmJSQ5
がんがれ
129774ワット発電中さん:2009/05/17(日) 21:56:45 ID:l5qyqaJi
もうすぐ一年(保守)
130774ワット発電中さん:2009/06/18(木) 01:11:31 ID:ubHmNVW6
VC++初心者です
というかCもC++も触って1ヶ月程度です。
教えていただきたいのですが、


public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: ここにコンストラクタ コードを追加します
//
array< System::Windows::Forms::CheckBox^ >^ checkBox = gcnew array< System::Windows::Forms::CheckBox^ >(24);

for(unsigned int i = 0; i < 5; i++ ){
// 送信するメッセージのデータフィールド
checkBox[i] = gcnew System::Windows::Forms::CheckBox();
checkBox[i] -> AutoSize = true;
checkBox[i] -> Checked = true;
checkBox[i] -> Location = System::Drawing::Point(30, 10 + (24 * (i + 1)));
checkBox[i] -> Name = "てすと";
checkBox[i] -> Size = System::Drawing::Size(15, 14);
checkBox[i] -> TabIndex = i;
checkBox[i] -> UseVisualStyleBackColor = true;
checkBox[i] ->Click += gcnew System::EventHandler(this, &Form1::checkBox_Click);

this->panel1->Controls->Add( checkBox[i] );
}
}

//
省略
//

#pragma endregion
private: System::Void Button1_Click(System::Object^ sender, System::EventArgs^ e) {


}
};
}
このクリックイベントで、チェックボックスにチェックがあるかないかを
判定したいのですが、チェックボックスにアクセスできません。
どうやって書いたらいいんでしょうか?
131774ワット発電中さん:2009/06/18(木) 05:11:29 ID:wDioXzL5
ム板の方がいいかもなぁ
132774ワット発電中さん:2009/06/18(木) 07:56:46 ID:FNcSb+Tj
>>130
どう見てもC++に見えんのだが…

senderをCheckboxにキャストしてValue読めばいいんでないかい。
133774ワット発電中さん:2009/10/03(土) 04:46:25 ID:u79yEHhU
>>132
C++/CLIってやつかと
134774ワット発電中さん:2010/05/13(木) 21:08:48 ID:SpeGBWac
なんだが死んでいるスレだなぁ。

取りあえず疑問なのだが。

gccを使っている訳だが
ターゲットCPUに内蔵SRAMと外部RAMの2つが付いていて使い分けたい。

こういう場合、__attribute__((section))で使い分けるのが基本なんだろうか?
でもbssに設定されてる領域が優先されて__attribute__((section))が無視される場合があるような…
135774ワット発電中さん
struct ext_mem {
・・・・・
・・・・・
};
struct ext_mem *extm;

とでもやって,extmのメンバとしてアクセスするなり,別途
#defineしておけばとりあえずいいんでないの?
せっかく->演算子もあることだし.