[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 08:32 / Filesize : 231 KB / Number-of Response : 986
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

スレを勃てるまでもないC/C++の質問はここで 10



1 名前:デフォルトの名無しさん mailto:sage [2009/05/14(木) 20:35:36 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/
スレを勃てるまでもないC/C++の質問はここで 3
pc11.2ch.net/test/read.cgi/tech/1187521676/
スレを勃てるまでもないC/C++の質問はここで 4
pc11.2ch.net/test/read.cgi/tech/1221633708/
スレを勃てるまでもないC/C++の質問はここで 5
pc11.2ch.net/test/read.cgi/tech/1230516307/
スレを勃てるまでもないC/C++の質問はここで 6
pc11.2ch.net/test/read.cgi/tech/1231564903/
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/
スレを勃てるまでもないC/C++の質問はここで 8
pc12.2ch.net/test/read.cgi/tech/1235921779/
スレを勃てるまでもないC/C++の質問はここで 9
pc12.2ch.net/test/read.cgi/tech/1240022781/

893 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:16:36 ]
質問です

Cでファイルに書き込むときに
fwrite(str, 1, strlen(str), fp);
fwrite(str, strlen(str), 1, fp);
とどちらが一般的ですか?何か違いは出てくるのでしょうか?

894 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:24:08 ]
VC++で、いっぱい書店においてるような本はどうなのですか?
入門〜やや中級手前レベル?の内容くらいかいてるようにはみえたのですが
役に立たないのかな

895 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:56:43 ]
>>894
プログラミング言語を全く知らない人が、いきなりVCに手を出す状況とかなら
決して悪くはないんじゃないかしら?

896 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 01:49:07 ]
>>893
fwrite(str, 1, strlen(str), fp);
に1票。
なんとなく2番めの引数は型のサイズ、3番めの引数はその個数って
思っている。


897 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 04:45:58 ]
>>893
>fwrite(str, 1, strlen(str), fp);
1バイトをstrlen(str)分書き込む、成功した際の戻り値がstrlen(str)

>fwrite(str, strlen(str), 1, fp);
strlen(str)バイトを1回書き込む、成功した際の戻り値が1

結果は同じ
ただ、意味のあるデータなら後者の方が意味的に良くない?

898 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:13:39 ]
>>895
>プログラミング言語を全く知らない人が、いきなりVCに手を出す状況
そうとうな窮地だな。

899 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:24:29 ]
#include <iostream>
#include <list>
int main() {
std::list<int> nums1;
nums1.push_back(4);
nums1.push_back(6);
std::cout << nums1[0] << std::endl;
std::cout << nums1[1] << std::endl;
return 0;
}
vectorで動いたソースをlistに変更してみたら動かないのでしがなんででしょうか?

900 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:52:45 ]
エラーメッセージ読めよ

901 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 07:56:21 ]
「動かない」というのはこの場合、極めて曖昧な比喩表現でしかない。
比喩を使われても困る。



902 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 11:17:11 ]
list<int>::iterator p = nums1.begin();
while( p != nums1.end() )
{
cout << *p << endl;
p++;
}
list はランダムアクセス子をもってない

903 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 12:24:09 ]
www.geocities.jp/KY_webid/cpp/library/012.html
なるほど了解した。ありがと

904 名前:デフォルトの名無しさん [2009/06/11(木) 15:57:58 ]
gprofって、対象のプログラムが使うライブラリが全てスタティックリンク
でないといけないのです?
そういうのないですよね?

905 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:09:13 ]
try {
m_pInt = new int [N];
}
catch {
delete [] m_pInt; // <-するべき?それとも放置?
}

906 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:28:03 ]
>>905
m_pIntに予め 0 を入れておけばdeleteしても問題ない

907 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 23:22:38 ]
>>905
そんなことよりboost::scoped_array使え。

908 名前:デフォルトの名無しさん [2009/06/12(金) 01:31:58 ]
ちょっとした質問です。
二分木の高さと深さは違うものですよね。

909 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 01:37:26 ]
木の「高さ」とノードの「深さ」のこと?

910 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 01:46:07 ]
下から見れば高さ、上から見れば深さ、相対的な違いか?

911 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 01:57:06 ]
視点が違うだけで数としては同じになる



912 名前:デフォルトの名無しさん [2009/06/12(金) 02:04:36 ]
たとえば、a(左部分, 右部分)とあらわす。
aはroot
a(b, NULL)
b(c, d)
c(NULL, NULL)
d(NULL, NULL)
c,dはleaf
という風になっているとします。伝わるかわからないですが・・・
このとき、a,b,c,dそれぞれの高さは2,1,0,0で合ってますか?


913 名前:853 mailto:sage [2009/06/12(金) 02:07:21 ]
Fedora11落としてきたばかりなのに。
最近は自前でカーネルコンパイルするの減ったな。

914 名前:デフォルトの名無しさん [2009/06/12(金) 02:50:17 ]
すいません。だれか僕が作ったプログラミングのデバッグしてくれませんか?お願いします。
初歩中の初歩です。

915 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 02:56:30 ]
お断りします

916 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 03:04:38 ]
とりあえずうp汁

917 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 04:12:14 ]
住所・氏名・連絡先も忘れずに。

918 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 07:55:46 ]
codepad
ttp://codepad.org/
ってところに貼れ。
貼ってどうすれば良いかは分かると思う。

919 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 12:53:27 ]
コンストラクタの引き数の規約を与えるための仮想基底クラスを作ることはできますか?

920 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:00:43 ]
codepad.org/WjzXeUiM
エラーがでるのですが
エラーを日本語にしてもらえないでしょうか?

921 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:02:45 ]
>>920
翻訳サイトつかってみたら?



922 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:06:51 ]
codepad.org/qHGkIKzL
う〜ん

923 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:09:35 ]
>>920
どこにエラーが? 警告なら出ているようだけど。

924 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:11:42 ]
三行目を
void print( const char *c )
にすればいいよ。



925 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 13:13:25 ]
>>920
ほい、エラーを翻訳してやったよ。
--
誤りとして扱われる警告
--


926 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:13:06 ]
R255 G0 B0の赤色の1ピクセルのbitmapのデータ読み込みで
54byte飛ばして色データを読み込んで10進数で表示させたのですが

0
0
-1
0
と表示されます。
0
0
255
0と表示されないのはなぜでしょうか?

927 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:22:52 ]
>>926
charに読み込んでるとか。

928 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:32:45 ]
>>927
charではダメなんですか?
1バイトだからいいかと思ったのですが

char unchi[10000];
fread( unchi, 1, 5000, fp );

とやっています

929 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:36:07 ]
あ、わかりました
charって-127~128ですよね
unsignedにすればいいですか?

930 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:37:24 ]
できました。
お騒がせしてすいません
ありがとうございました。

931 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 15:40:38 ]
>>929
ビットマップに限った話ではないが
typedef unsigned char uint8;
とでもしておくと楽。
必要に応じてuint16,uint32,uint64もtypedefしといてもいいかと。



932 名前:デフォルトの名無しさん [2009/06/12(金) 15:51:13 ]
char 配列に日本語が入っているとします。
改行コードが\nで統一されている場合に
wchar_tにポインタでキャストしたときに文字化けしない方法はありますか?

933 名前:932 [2009/06/12(金) 16:05:38 ]
キャストしたら\r\nでも文字が正しくなく・・・ 
windowsのwchar_tの文字コードは
UTF16とか効いた気がします・・・

934 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:08:25 ]
mbtowc(wchar_t *wc_str, const char *mb_str, size_t mb_scan_size);

935 名前:932 [2009/06/12(金) 16:10:43 ]
ここに書いてありました。 
EUCやSJISをwchar_t* にキャストして操作しても問題は出ませんか?
表示できないだけで。



ワイド文字 - Wikipedia
wchar_tの内部表現もUnicodeである必要はない。
本来はCode Set Independet(符号化集合に独立)なのである。
しかし、Windowsでは16ビット (UTF-16)、
LinuxやMac OS Xでは32ビット (UTF-32)である。


936 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:30:16 ]
>>935
文字列の終わりの0のサイズが違うんで、キャストしただけじゃ使えないと思う。

937 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:31:42 ]
質問です

int *Array;
int *pNum;

int Num = 10;

Array = new int[1];
Array[0] = Num;

*pNum = Array[0];

デバッグすると、このコードの最後の部分でエラーが起きます
どうすればうまくいきますか?

938 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:34:19 ]
>>937
pNumもメモリ確保しないと。

939 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 16:38:29 ]
>>938
ああ、なるほど
ありがとうございました

940 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:04:46 ]
ユニコードとかって3バイト以上の文字もありますよね?
wchar_tは2バイトなのにどうやってこれを格納してるんですか?

941 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 19:25:10 ]
>>940
>wchar_tは2バイト
そんなこと決まってないっしょ?
言語使用上定められているのは
sizeof(char)<=sizeof(wchar_t)
だけじゃない?



942 名前:デフォルトの名無しさん [2009/06/12(金) 19:39:08 ]
つ UTF16

943 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 20:44:25 ]
少なくともうちでは2バイトじゃないから大丈夫だなあ

944 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 20:55:20 ]
cygwinはwchar_tが2バイトっていうイカれた仕様
なのでUTF-8が上手く使えない…

945 名前:デフォルトの名無しさん [2009/06/12(金) 21:04:42 ]
windowsも2バイト

946 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 21:13:12 ]
そうなのか、失敬した

947 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 21:55:53 ]
UTF-8はマルチバイトだからchar*で扱うもの

948 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:09:33 ]
16bit整数二つ→32bit整数ひとつと変換して、配列の添え字に使いたいのですが
全部のインデックスからアクセス可能にしようとすると配列がでかくなりすぎてこまります
なにかいい方法はないでしょうか?

949 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:12:12 ]
inline static void foo();

static inline void foo();
とではどちらが正しいですか?

foo()はあるクラスの静的メンバ関数です。

950 名前:949 mailto:sage [2009/06/12(金) 22:16:02 ]
あれ?
MyClassの宣言中では
MyClass
{
//etc
static void foo();
//etc
};
と書き、
そのヘッダの中(ただし宣言の外で)実装を書いて
inline void foo()
{
//実装
};
と書くのがただしいですか?


951 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 22:19:34 ]
どっちでもいい。
どっちかが正しかったら、憶えなくちゃいけないから大変だ。



952 名前:949 mailto:sage [2009/06/12(金) 22:22:17 ]
>>951
ありがとうございます。

953 名前:デフォルトの名無しさん [2009/06/12(金) 22:23:49 ]
>>948
つ map

mapなら、int x=-1; でも、a[x]がエラーにならない。
google製のmapもある

954 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 23:52:12 ]
>>940
Windows環境ではsizeof(wchar_t) == 2で、UTF-16を格納している。
昔はサロゲートペアはサポートしていないと聞いたような気がするが今はどうだか知らん。

多くの*NIX系環境ではsizeof(wchar_t) == 4で、UTF-32(UCS-4)を格納している。

955 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:08:32 ]
int型の配列に整数だけを代入したいときにはどうすればよいのでしょうか?
isdigitが数字かどうかの判定が出来るというので、使ってみたら、エラーが出ます。
これがソースの一部です。
for(i = 0; i < 10; i++){

while(isdigit(a[i]) == 0){
printf("%d個目の整数です。\n",i+1);
fgets(buf, 10, stdin);
sscanf_s(buf, "%d", a[i]);
}
}
whileの中身をどうにかすればうまくいくと思うんですが。

956 名前:デフォルトの名無しさん [2009/06/13(土) 02:14:55 ]
いろいろとだめだろ。
&がついてないし、入力後に確認すればいいものをループの上で判定するし
たとえば変数xに数字が入っていたら代入すればいいし。



957 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:15:07 ]
ソースの一部を貼るのはいいが、特に初心者ならちゃんと変数宣言とかも書いてくれ。
あとエラーメッセージもちゃんと書いてくれよ。 エスパー技能を発揮できる人間はそうそういないんだから。

958 名前:デフォルトの名無しさん [2009/06/13(土) 02:23:10 ]
たとえば。

int inputsu(){
int x;
do{ scanf("%d", &x);
} while(x<0 || x>1000);
return x; }

int main(){
int i; int a[10];
for(i = 0; i < 10; i++){
printf("%d個目の整数です。\n", i+1);
a[i]=inputsu(); }
}

959 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:23:43 ]
>>955
isdigitは、あるcharの1字が'0'から'9'までの数字に分類される文字かどうかを判定するだけ。
数値であるかどうかの判定とは違う。

a[i]に値が入るのはsscanf_sの時点。
そのsscanf_sは代入できたデータの数を戻り値にする。見るべきはこれ。

for (i = 0; i < 10; i++) {
    do {
        printf("%d個目の整数です。\n", i + 1);
        fgets(buf, 10, stdin);
    } while (sscanf_s(buf, "%d", &a[i]) != 1);
}

960 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:36:13 ]
>>956
入力後に確認ですか、ありがとうございます。

>>957
すいません、次から気をつけます。
visual C++ 2008EEでやっているのですが、ビルド時にエラーは出ないんです。
コンパイルしたときに
Debug Assertion Failed!
Program:...\Visual Studio 2008\Projects\~

Line: 56
Expression: (unsigned)(c + 1) <= 256

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

っていうメッセージが出ます。

961 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 02:48:22 ]
>>958
>>959
言われたとおりにやってみたら、
期待したとおりの出力結果が得られました。
ありがとうございます。



962 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 10:23:58 ]
Webを参考に全ての順列を列挙するプログラムを作ったんですが、
これをnPkが列挙できるように改良するにはどうすれば良いですか
引数を一つ増やして(int k) 終了条件をt.size()==kとしてみましたが
予想よりも多く結果が出力されてしまってうまくいきません

void perm(int p,vector<int>& v,vector<int> t){
if(t.size()==v.size()){
copy(t.begin(),t.end(),ostream_iterator<int>(cout," "));cout<<endl;
}
for(int j=p;j<v.size();++j){
t.push_back(v[j]); perm(p+1,v,t); t.pop_back(); perm(p+1,v,t);
}
}

int main(){
vector<int> v(5),t;
for(int i=0;i<5;++i){v[i]=i;}
perm(0,v,t);
}

963 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:37:58 ]
C言語でマイコンからLCDに文字列を出力するプログラムで

void PutString(char* point);
void PutChar(char data);

main(){
  PutString("Hello,world!");
}

void PutString(char* point){
  while(*point){
  PutChar(*point);
  ++point;
  }
}

void PutChar(char data){
  //LCDに1文字出力し、カーソルをインクリメントする
}

上記のプログラムが正常に動くのですが
PutString("Hello,world!");
文字列のリテラルとchar型ポインタは型があわないはずなのに
なぜこの行がエラーにならず正常に動のでしょうか?
マイコンというよりCの言語仕様の話だと考えたのでこっちに質問しました。

964 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:42:06 ]
俺も最近マイコンのプログラムに触れて思ったけど、
マイコン向けのコンパイラってANSIとかに厳密に追従してない感じだな

ところどころ気持ち悪い

965 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 13:47:46 ]
標準出力? 何ソレ? みたいな環境もあるからな。
それはしゃーない。

966 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 14:05:57 ]
>>963
"Hello,world"はchar[12]型。
それが配列からポインタへの変換でchar*になる。
型の問題はどこにもないぞ。

967 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 14:15:59 ]
ヒント:リテラル

968 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 14:23:34 ]
え?文字列リテラルは書き換えできなくてもchar*に変換できるだろ。

969 名前:963 mailto:sage [2009/06/13(土) 15:52:05 ]
>>964-968
アドバイスサンクスです。

関数コール時に一時的にメインメモリ上にchar[12]の領域が確保され
そのポインタが渡され、型の問題が生じない。という理解で良いですか。

char[12]が一時的に確保されたなら、その領域が解放されるのは
PutString("Hello,world!");
を抜けた時でしょうか。

970 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:12:22 ]
いいや、一時的な領域が作られることはないよ。
基本的に、文字列リテラルは予め用意された静的な領域に置かれるが、
そこへのポインタそのものがPutStringの引数として渡される。

971 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:20:01 ]
型安全についてCよりも厳しくなったC++では
この変換を「死の変換」と呼ぶ。



972 名前:963 mailto:sage [2009/06/13(土) 16:26:04 ]
>予め用意された静的な領域に置かれる
納得しました。

>>971
「死の変換」ですか・・・
関数から抜けた後は、その文字列リテラルへのポインタがわからなくなり
永遠にアクセスできない領域になってしまうためそう呼ばれるのでしょうか。

char hello[12] = "hello,world!"
と最初のほうに書いておき、
PutString(hello);
とやるほうが望ましいでしょうか。

973 名前:デフォルトの名無しさん [2009/06/13(土) 16:28:43 ]
C++でnamespaceの名前つけかたのルールみたいなものってあるんですか?
Javaだと全部小文字でドメイン名をひっくり返したものとか、あるけど。

大文字で始まってるのよく見る気もするし。
ドットが入ってるのあんまり見ないし

ドメイン名っていうのはかぶらないのでいい方法だと思うけど
yahoo.co.jpだったらどんなのつけます?

974 名前:デフォルトの名無しさん [2009/06/13(土) 16:31:59 ]
そういうのは、プロジェクトポリシーで決まるんじゃねーの

975 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:36:10 ]
>>972
いや、それよりもPutStringの引数にconstつけろよ。

976 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 16:40:57 ]
>>973
全世界にソース公開とかじゃない限り「絶対にかぶらない名前をつける」ってのは
重視しなくていいんじゃないかな。
ちなみに、自分はクラス名と同じ命名規則。

977 名前:デフォルトの名無しさん [2009/06/13(土) 16:44:55 ]
プログラムのわかりやすさではstringだな。
生成と動作のコストがかかるが。


978 名前:デフォルトの名無しさん [2009/06/13(土) 16:52:01 ]
長い文字列、データをソース内に貼り付けるとコンパイル時間かかりサイズもでかくなる。
計算や短い文から生成できるならそれ使うべき。

979 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 17:29:48 ]
日本語の識別子を使う人なんてめったにいないだろうから
namespaceで日本語を使えば被る確立はほとんどないだろう
コンパイラ依存だけど

980 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 17:57:37 ]
>>979
どう考えたって、
仕様違反のコンパイラ依存に確実になるくらいなら
namespaceがかぶる危険があるってだけの方が
まだマシだと考えるヤツが大半だと思うが。

ローマ字に止めるべし。

981 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:01:00 ]
和製英語のローマ字読み最強



982 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:19:57 ]
BOOL bBlockConnect(char * pAddr, int iPort, unsigned int uiMsg);
int iOnSocketEvent(WPARAM wParam, LPARAM lParam);
BOOL bInitBufferSize(DWORD dwBufferSize);
XSocket(HWND hWnd, int iBlockLimit);
virtual ~XSocket();

int m_WSAErr;
BOOL m_bIsAvailable;
BOOL m_bIsWriteEnabled;

void _CloseConn();

int _iSendUnsentData();
int _iRegisterUnsentData(char * cData, int iSize);
int _iSend(char * cData, int iSize, BOOL bSaveFlag);
int _iSend_ForInternalUse(char * cData, int iSize);

メンバ関数の 始まりの文字が
b -> return BOOL
i -> return int
と規則的に作られてるのですが
_ (アンダーバー)で始まるのは何の意味があるのでしょうか?

983 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:24:17 ]
実装した奴が、そうしたかったから
言語仕様での意味はないはず。


984 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:39:53 ]
privateなメンバとか。何か規則があると思う。
スコープがクラスだから、_[a-Z]+()なメンバ関数があっても他のスコープと識別子がかぶることはないが、
_[a-Z]+で始まる識別子は予約されているので、マクロで置き換えられたときに嵌まるおそれがある。

985 名前:デフォルトの名無しさん [2009/06/13(土) 19:00:49 ]
STLのmapの容量はかってみた。 
<int,int>で2の21乗個登録したら、127M使用していた。
一個あたり、64バイト。
通常の配列だと4バイト、16倍も消費量が多い。
もっと少なくなるやつある?






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<231KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef