[解決済み] C++に'byte'データ型はありますか?
質問
インクルードするヘッダーファイルはありますか?
このコードはコンパイルエラーになります。
#include <iostream>
using namespace std;
int main()
{
byte b = 2;
cout << b << endl;
return 0;
}
解決方法は?
C++にはbyteデータ型はありません。しかし、標準ライブラリのbitsetヘッダをインクルードして、byteのtypedefを作成することは可能です。
typedef bitset<8> BYTE;
注:WinDef.hはWindowsのコードにBYTEを定義しているので、Windowsをターゲットにする場合は、BYTE以外のものを使用したほうがいいかもしれません。
編集部:答えが間違っているという指摘にお答えします。 答えは間違っていません。質問は、「C++に'byte'データ型はあるか」です。答えは、「C++にbyteデータ型はありません」です。
質問された可能性のある代替案に関して、なぜその代替案が良いのですか?
当時の私のC++規格のコピーによると。
文字(char)として宣言されたオブジェクトは、実装の基本文字セットの任意のメンバーを格納するのに十分な大きさでなければならない。3.9.1.1
もし、コンパイラの実装が基本文字セットを格納するために16ビットを必要とするならば、charのサイズは16ビットであることを示唆していると私は読みました。現在のコンパイラがcharに8ビットを使用する傾向があることは一つの事実ですが、私の知る限りでは、確かに8ビットであるという保証はないようです。
一方、クラステンプレートbitset<N>は、固定ビット数Nからなるシーケンスを格納することができるオブジェクトを記述します。つまり、テンプレート・パラメータに8を指定することで、8ビットからなるシーケンスを格納することができるオブジェクトを得ることができるのです。
そのため、書いているプログラムの文脈で、charという選択肢が良いかどうかは、間違っているかもしれませんが、私の理解では、コンパイラとその時の要件に依存します。したがって、私が知る限り、コードを書いている個人が、提案された代替案が自分の要件/要望/必要性に適しているかどうかを判断する必要があるのです。
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] C++テンプレート関数定義の.CPPファイルへの格納
-
[解決済み] error: 'this' 引数に xxx を渡すと修飾子が消える
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++のGetlineの問題(オーバーロードされた関数 "getline "のインスタンスがない
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】変数やフィールドがvoid宣言されている