目次
54 関係: 型変換、可変長引数、予約語、マクロ (コンピュータ用語)、ブライアン・カーニハン、ブーリアン型、プログラミング言語、プログラミング言語C、テンプレート、データ型、デニス・リッチー、ダック・タイピング、列挙型、アンダースコア、アスタリスク、インターネットアーカイブ、エイリアス、キーワード (C++)、キーワード (C言語)、クラス (コンピュータ)、クロスプラットフォーム、グレッグ・クロー=ハートマン、コールバック (情報工学)、シノニム、ジェネリックプログラミング、ソースコード、サブルーチン、共用体、C Sharp、C++、C++11、C99、C言語、移植性、誤植、関数へのポインタ、Haskell、JPCERT/CC、Linux Journal、Linuxカーネル、Microsoft Windows、Miranda、Object Pascal、OCaml、Pascal、Printf、Return文、Scanf、Standard Template Library、Time t、... インデックスを展開 (4 もっと) »
- C++
- C言語
型変換
型変換(かたへんかん、type conversion)とはプログラムにおいて、あるデータ型を他のデータ型に変換することである。型キャスト(type casting)とも呼ばれる。
見る Typedefと型変換
可変長引数
可変長引数(かへんちょうひきすう、variable length arguments、variadic arguments)とはプログラミング言語において、関数(サブルーチンやメソッドを含む)やマクロの引数が固定ではなく任意の個数となっている引数のことである。 可変引数、可変個引数とも呼ばれる。 可変長引数を持つ関数を可変長引数関数(variadic function)と言う。 いくつかの言語では型安全が保証されなくなるので注意が必要である。
予約語
とは、プログラミング言語などの人工言語の仕様に定められているもので、ユーザープログラムの開発者が自分で付ける識別名としては利用できない特定の文字列のこと。たとえば変数名や関数名などに使用することができない、とあらかじめ定められた文字列(単語、字句など)のこと。あるいは、プログラミング言語などにおいて、固定された意味を持っており、その結果、プログラマーの側ではその意味を再定義できない語。
見る Typedefと予約語
マクロ (コンピュータ用語)
マクロ (macro) あるいはマクロ命令 (macroinstruction) は、計算機科学の分野では、アプリケーションソフトウェアの自動操作のような、プログラミング言語での記述と比較して粒度が大きい処理を記述したり、テキストを別のテキストに置換したり、粒度が大きい命令を粒度の小さい命令(マイクロ命令)に変換したりするための規則または型のこと。マクロを記述するコンピュータ言語をマクロ言語と言う(言語の無いマクロ機能もある)。また、テキスト等の変換を記述する言語は変換言語と呼ばれる。マクロは「大きい」「巨大な」という意味。 この記事と、マクロ言語の記事は、それぞれに書くべき内容と書かれている内容が混乱している。また以下の内容のいくつかは変換言語についてのものである。
ブライアン・カーニハン
ブライアン・カーニハン (Brian Wilson Kernighan、1942年1月1日 -) は、ベル研究所に在籍していたカナダ出身の計算機科学者である。C言語やUNIXの開発者であるデニス・リッチー、ケン・トンプソンと共に、C言語およびUNIXに対する多くの研究開発結果による貢献で知られている。 デニス・リッチーと共著の『プログラミング言語C』(通称:K&R)は、C言語の規格化が成されるまで事実上の規格書的な扱いを受けていた。現在でも古典的な教科書の一つである。 現在は、計算機科学部教授としてプリンストン大学に在籍している。
ブーリアン型
ブーリアン型(ブーリアンがた、Boolean datatype)は、真理値の「真。
プログラミング言語
プログラミング言語(プログラミングげんご、)とは、プログラムを記述するための人工言語。コンピュータプログラムを書くために考案された、正確に定義された記号と規則のしくみ。以前は、しばしばプログラム言語と表記された。
プログラミング言語C
『プログラミング言語C』(原題:The C Programming Language)は、ブライアン・カーニハン (Brian W. Kernighan) とデニス・リッチー (Dennis M. Ritchie) によって書かれたC言語についての書籍である。著者名の頭文字からしばしばK&Rと略される。 初版は1978年に出版され、C言語が標準化されるまでの間リファレンス的な扱いを受けていた。1988年の第2版ではANSIでの標準化 (C89) を反映して大幅に変更されている。 日本語訳は初版・第2版と訳書訂正版とも石田晴久。C Magazine創刊号の石田のインタビューによると、初版は某企業がC言語講座事業を行うにあたり、許可を取らずに勝手に翻訳していたものを貰い受けそれを下訳として翻訳を行なったという。
テンプレート
テンプレート(template)とは、文書などのコンピュータデータを作成する上で雛形となるデータ、あるいは雛形そのもの。 最も抽象的なテンプレートは、レイアウトのみのデータで、テキストを流し込むことでレイアウトつき文書となる。 具象的なテンプレートは、それ自体文書であり、数箇所の修正または空白への書き込みで目的の文書となる。 このほか、さまざまな段階がある。 テンプレートから文書を作る工程は、手動の場合も自動の場合もある。 語源は四角形や円などがくりぬいてある定規板で、そこから一定の状態にするという型という意味が生まれた。
データ型
Pythonの標準データ型階層 データ型(データがた、)とは、コンピュータプログラミングや計算機科学において、属性を持つデータを分類し、その扱われ方をコンパイラやインタープリタに知らせるプログラム。単に型(かた、Type)とも言われる。 多くのプログラミング言語は、整数型・浮動小数点型・ブール型・文字型といった基本データ型を備えている。計算対象にされるデータは、しばしば値(value)と言われる。データ型は式内の値を制約して、関数への適用可能性や変数への代入可能性を定義する。データ型は、値の集合の概念と近似している。
見る Typedefとデータ型
デニス・リッチー
デニス・マカリスター・リッチー(Dennis MacAlistair Ritchie、1941年9月9日 - 2011年10月12日)は、アメリカ合衆国の計算機科学者。 コンピュータ言語のC言語を開発し、ケン・トンプソンと共にオペレーティングシステム(OS)であるUNIX、Multicsなどの開発者として知られる。2007年に引退するまで、ルーセント・テクノロジーズのシステムソフトウェア研究部門を指揮していた。技術的なコミュニティの中では、彼を指して "dmr"(ベル研究所におけるアカウント名)と呼ぶことがある。
ダック・タイピング
ダック・タイピング(duck typing)とは、Smalltalk、Perl、PHP、Python、Ruby、JavaScriptなどの動的型付けに対応したオブジェクト指向プログラミング言語に特徴的な、型付けのスタイル(作法)のひとつである。ダック・タイピングはポリモーフィズム(多態性)を実現する手段のひとつとして使われる。 Pythonのリファレンスでは、ダック・タイピングは「あるオブジェクトが正しいインタフェースを持っているかどうかを決定するために、オブジェクトの型を見ることはしないプログラミングスタイルである」と説明されている。代わりに、オブジェクトが持つメソッドや属性(フィールドまたはプロパティ)が単純に呼ばれたり使われたりする。特定の型よりもインタフェースを重視することで、うまく設計されたコードは、ポリモーフィックな代入の許可による柔軟性を向上する。
列挙型
列挙型(れっきょがた、enumerated typeあるいはenumeration type)とは、コンピュータプログラミングにおいて、プログラマが選んだ各々の識別子(列挙子)をそのまま有限集合として持つ抽象データ型である。列挙型は一般に、カードのスートのように番号順を持たないカテゴリ変数として使われるが、実際のコンパイル時あるいは実行時には、列挙型は整数で実装されることが多い。各々の識別子は通例異なる整数値を持つが、複数の識別子に対して意図的に同じ整数値を割り当てる(つまり別名を定義する)ことも可能である。 また列挙型は、整数を使用する場合と比較して、明示的にマジックナンバーを使用するよりもプログラムソースの可読性を改善するのに役立つ。言語によっては、列挙型の整数表現はプログラマに見えないようになっていることもあり、これによりプログラマが列挙値に対して算術演算を行うような乱用を防いでいる。列挙型の定数は同じ列挙型の変数にしか代入できない(整数型の変数に代入するには明示的な型変換などが必要)という仕様になっている言語もある。
見る Typedefと列挙型
アンダースコア
アンダースコア(, )あるいは下線符号(かせんふごう)は、空白に下線が引かれた記号文字(約物)である。 アンダーライン(「ASCII」(2014-08-24閲覧、書籍版: ISBN 978-0262680929))、アンダーバー()。ASCII/CCITT文字名称は、JIS X 0201文字名称はアンダラインである。Unicode文字名称はローライン()で、アンダースコアおよびアンダーラインは結合文字である U+0332 の別名になっている。 ASCIIコードは5F(95)である。
アスタリスク
アスタリスク またはアステリスク(asterisk)は、約物のひとつで、中心点から放射状に伸びる数本の線分で構成される記号である(右図参照)。 英語の は後期ラテン語を介して古代ギリシア語の「小さな星」を意味する言葉に由来している。 日本語において、星号、星印、星、アスタとも呼ばれる。
インターネットアーカイブ
旧インターネットアーカイブ本部(1996年 - 2009年11月) 新インターネットアーカイブ本部(2009年11月 - ) インターネットアーカイブ(Internet Archive)は、WWW・マルチメディア資料のアーカイブ閲覧サービスとして有名なウェイバックマシン(Wayback Machine)を運営しているアメリカの団体である。本部はカリフォルニア州サンフランシスコのリッチモンド地区に置かれている。 アーカイブにはプログラムが自動で、または利用者が手動で収集したウェブページのコピー(ウェブアーカイブ)が混在しており、これは「WWWのスナップショット」と呼ばれる。そのほか、ソフトウェア・映画・本・録音データ(音楽バンドなどの許可によるライブ公演の録音も含む)などがある。アーカイブは、それらの資料を無償で提供している。
エイリアス
エイリアス (alias) は、「別名」あるいは「偽名」などを意味する英語の名詞である。「またの名を~」という形で副詞としての用法もある。
キーワード (C++)
本記事では、C++のキーワード について解説する。 本記事は、あくまでC++のキーワードに焦点をあてた記事であり、C++の全体像や、C++のキーワード以外の面には立ち入らない。読者の理解の助けとなる場合は適宜、他のプログラミング言語と比較する説明は行う。
キーワード (C言語)
本記事では、C言語のキーワードに関して説明する。 本記事は、あくまでC言語のキーワードに焦点をあてた記事であり、C言語の全体像や、C言語のキーワード以外の面には立ち入らない。ISO/IEC 9899 に沿って記載する。読者の理解を助ける場合は適宜、他のプログラミング言語と比較する説明は行う。なお、1978年のK&R第1版にはキーワードの記載が無かったが、1988年の第2版では付録A2.4に「キーワード(予約語)」がある。
クラス (コンピュータ)
オブジェクト指向プログラミングにおけるクラス(class)英語の class は、本来「分類」「種類」といった意味を持っている。は、オブジェクトを生成するための設計図あるいはひな形に相当するものである。抽象データ型の一つ。クラスから生成したオブジェクトの実体のことをインスタンスという。 クラスには、クラス自身またはクラスのインスタンスが保持するデータと、データに関連したオブジェクトの振る舞いを記述できる。プログラミング言語によっては、それぞれにを指定できる。統一モデリング言語 (UML) のクラス図では、データのことを「属性」、振る舞いのことを「操作」と呼ぶ。Javaなどでは、データのことを「フィールド」、振る舞いのことを「メソッド」と呼ぶ。
クロスプラットフォーム
クロスプラットフォーム(cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォームmulti-platformがある。 また、家庭用ゲームにおいては「クロスプラットフォーム」と「マルチプラットフォーム」で意味が異なる場合がある。本項ではこのケースについても後述する。
グレッグ・クロー=ハートマン
グレッグ・クロー=ハートマン(Greg Kroah-Hartman)は、Linuxカーネル開発者である。彼は現在、-stable (一部リリースはLong term releaseとも呼ばれ、長期のメンテナンスが行われる)ブランチのLinuxカーネルをとともにメンテナンスしている。主に、次のカーネルサブシステムを管理している。目下開発中のドライバが投入されるstagingサブシステム、USB、driver core、debugfs、kref、kobjectそしてsysfsサブシステムである。また、ユーザー空間I/OをHans J.
コールバック (情報工学)
同期的なコールバック方式では、ある関数の引数として渡されたコールバック関数は、その関数内でのみ使われ、関数が終了した後は使われない。 非同期的なコールバック方式では、最初にコールバック関数を登録し、後で必要になったときに呼び出す。 コールバック(callback)とは、コンピュータプログラミングにおいて、あるサブルーチン(関数など)を呼び出す際に別のサブルーチンを途中で実行するよう指定する手法のこと。呼び出し側(caller)が事前に用意・登録したサブルーチンを、呼び出し先(callee)のコードが「呼び出し返す」ように動作することから、電話回線におけるコールバック(callback)のアナロジーとして命名された手法である。これにより、下位レベル(フレームワーク)の抽象化層が上位レベルの層(アプリケーション)で定義されたサブルーチン(関数など)を呼び出せるようになる。このとき、他の関数の引数として渡される関数は、コールバック関数(callback function)と呼ばれる。関数が第一級オブジェクトである言語において、コールバック関数を引数として受け取る関数は高階関数である。
シノニム
生物の命名法におけるシノニム(synonym)とは、同一と見なされる分類群(種や属など)に付けられた学名が複数ある場合に、そのそれぞれをいう。ある学名がシノニムであると言う場合、一般的な文脈では「正しい」学名ICNとICNPでは正名(correct name)、ICZNでは有効名(valid name)ではないという意味を包含していることが多いが、命名規約の上では「正しい」学名もシノニムに含まれる。「syn.」と略記されることもある。和訳は異名(旧訳では同物異名)である。
見る Typedefとシノニム
ジェネリックプログラミング
ジェネリック(総称あるいは汎用)プログラミング(generic programming)は、具体的なデータ型に直接依存しない、抽象的かつ汎用的なコード記述を可能にするコンピュータプログラミング手法である。
ソースコード
■) で示されているのが有効なコードである。 ソースコード(source code)は、プログラミング言語で書かれた、コンピュータプログラムを表現する文字列(テキストまたはテキストファイル)である。
サブルーチン
プログラミングにおけるサブルーチン(subroutine)は、プログラム中で意味や内容がまとまっている作業をひとつにまとめたものである。サブプログラムあるいは副プログラム(subprogram)大滝みや子『2020年版 基本情報技術者 標準教科書』オーム社、2019年。pp.95-96「手続きと関数」「再帰呼び出し」の章とも呼ばれ、単に「ルーチン」(routine)と呼ばれることもある。プログラミング言語によっては、関数(function)やプロシージャあるいは手続き(procedure)とも呼ばれる。
共用体
共用体(きょうようたい、union)は、プログラミング言語におけるデータ型の一つで、同じメモリ領域を複数の型が共有する構造である。 例として、ある入力が数字の場合は数値として、そうでない場合は文字列のまま保持したいという場合を考える。この場合、数値用と文字列用の領域をそれぞれ用意するのが一つの解法だが、入力は数値か文字列のどちらか一方なので、片方しか使われず無駄が出る。そこで代わりに、格納用の領域を一つだけ用意して、これを数値である、文字列であると場合により解釈し分けることで領域の無駄が抑えられる。この「格納用の領域」こそが共用体である。 共用体から意味のある値を取り出すためには、中身のデータそのものに加えて「今、何の型のデータが入っているか」という情報(タグという)が必要となる。タグを付加情報として持ち、常に正しい型でデータを得られるように設計された共用体を特にあるいはという。
見る Typedefと共用体
C Sharp
C#(シーシャープ)は、マイクロソフトが開発した、汎用のマルチパラダイムプログラミング言語である。C#は、Javaに似た構文を持ち、C++に比べて扱いやすく、プログラムの記述量も少なくて済む。また、C#は、Windowsの.NET Framework上で動作することを前提として開発された言語であるが、2023年現在はクロスプラットフォームな.NETランタイム上で動作する。 デスクトップ・モバイルを含むアプリケーション開発や、ASP.NETをはじめとするWebサービスの開発フレームワーク、ゲームエンジンのUnityでの採用事例などもある。 マルチパラダイムをサポートする汎用高レベルプログラミング言語で、静的型付け、タイプセーフ、スコープ、命令型、宣言型、関数型、汎用型、オブジェクト指向(クラスベース)、コンポーネント指向のプログラミング分野を含んでいる。
C++
C++(シープラスプラス)は、汎用プログラミング言語のひとつである。派生元であるC言語の機能や特徴を継承しつつ、表現力と効率性の向上のために、手続き型プログラミング・データ抽象・オブジェクト指向プログラミング・ジェネリックプログラミングといった複数のプログラミングパラダイムが組み合わされている。C言語のようにハードウェアを直接扱うような下位層向けの低水準言語としても、複雑なアプリケーションソフトウェアを開発するための上位層向け高水準言語としても使用可能である。アセンブリ言語以外の低水準言語を必要としないこと、使わない機能に時間的・空間的コストを必要としないことが、言語設計の重要な原則となっている。
見る TypedefとC++
C++11
C++11は、プログラミング言語 C++ のISO標準 ISO/IEC 14882:2011 の略称である。規格の策定中は2009年中の標準化を目指していたため、C++0x という仮称で呼ばれていた。 ISO/IEC 14882:2003 (C++03) に代わるものとして、2011年8月12日にISOによって承認された。後継のC++14が2014年8月18日に承認されている。 コア言語への機能追加や標準C++ライブラリの拡張を施し、C++TR1ライブラリの大部分を(数学的特殊関数ライブラリを除いて)取り込んでいる。
C99
C99は、ISOで定められたC言語の規格である。正式な規格名は ISO/IEC 9899:1999。
見る TypedefとC99
C言語
C言語(シーげんご、C programming language)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++やJava、C#など、「C系」と呼ばれる派生言語の始祖でもある。 ANSI、ISO、またJISにより言語仕様が標準規格化されている。
見る TypedefとC言語
移植性
移植性(いしょくせい)、ポータビリティ(portability)とは他の環境への移行のしやすさの性質のこと。
見る Typedefと移植性
誤植
誤植(ごしょく)とは、印刷物における文字や数字、記号などの誤りのこと。 特に、企業名・商標・人名をはじめとする固有名詞や、数字の位取りの誤植が起こると、大きな問題となることがある。 もともとは活版印刷や写真植字で間違った活字を植字してしまうことを指したが、転じて印刷物全般やウェブサイト上の誤字や脱字、衍字についても「誤植」と呼ばれることがある。
見る Typedefと誤植
関数へのポインタ
関数へのポインタ (かんすうへのポインタ、pointer to function) あるいは関数ポインタ (かんすうポインタ、function pointer) は、C言語, C++, D言語やその他多くのプログラミング言語におけるポインタの一種である。関数へのポインタをデリファレンス (dereference) すれば、そのポインタが指し示す関数(サブルーチン)を呼び出せる。応用例としては、switch文を置き換えるテーブルジャンプを実装する、コールバック関数によるカスタマイズポイントを提供する、などといったものがある。 関数オブジェクト (function object) は、関数へのポインタに似ているが、コード領域中のエントリポイントを指す単なるポインタである関数へのポインタと違い、データ領域上に実体を持つオブジェクトであるという点が異なっている(実装の詳細は言語や処理系により異なるが)。そのため、関数オブジェクトはデータを保持でき、クロージャを再現することもできる。ゆえに、関数オブジェクトは、「関数へのポインタ」ではなく「関数」という型と値を持つようなものと言え、より強力である。
Haskell
Haskell(ハスケル)は非正格な評価を特徴とする純粋関数型プログラミング言語である。名称は数学者であり論理学者であるハスケル・カリーに由来する。
JPCERT/CC
JPCERT/CC(ジェーピーサート/シーシー)は、「一般社団法人JPCERTコーディネーションセンター」の略称。 コンピュータセキュリティの情報を収集し、インシデント対応の支援、コンピュータセキュリティ関連情報の発信などを行う一般社団法人。代表理事は 菊池浩明(2018年6月〜)。
Linux Journal
Linux Journalとはアメリカ合衆国コロラド州デンバーにあるLinux Journal, LLCが発行していた技術雑誌。雑誌ではLinuxに焦点をあてて、オープンソース愛好家向けに専門性の高い情報を提供していた。
Linuxカーネル
Linuxカーネルは、Unix系オペレーティングシステムであるLinuxのカーネル。リーナス・トーバルズによって開発が開始された。ライセンスにGPL(バージョン2)を採用する自由なソフトウェアである。 通常、Linuxカーネルと言えばリーナスが管理・公開している公式版(メインライン・カーネル)を指すが、Linuxディストリビューションで使用されているカーネルは、バージョンが古かったり、ベンダーが独自の改造を施してあることが多い。例えば、Androidで使用されているカーネルもそのひとつである。このような非公式のカーネルは、ベンダー側が対応すべきとしているため、Linux Kernel Mailing Listなどでは基本的に対応対象外となっている。
Microsoft Windows
Microsoft Windows(マイクロソフト ウィンドウズ)は、マイクロソフトが開発・販売するオペレーティングシステム (OS) の製品群である。グラフィカルユーザインタフェース (GUI) を採用している。Windows発売以前では高価なワークステーション(ハイエンドパソコンを上回る性能のデスクトップコンピュータ)でしか実現されていなかったマルチタスクやGUIを中心とした使い勝手の良さを、一般消費者が入手しやすい標準的な規格のパソコンに順次取り込んで行き、一般向けOSのシェアのほとんどを占めるに至り、今や大きな知名度を持つ。
Miranda
Mirandaは、遅延評価方式の純粋関数型プログラミング言語である。作者デビッド・ターナー(David Turner)による以前の言語SASLやKRCの後継でもあり、またMLやHopeの影響も受けている。イギリスのリサーチ・ソフトウェア社(Research Software Ltd.)が販売しており、同社の商標でもある。研究目的ではない商用を目指した最初の純粋関数型言語であった。 よくある例題を解くプログラムに関して言えば、Mirandaのコードは(APLなどを別とすれば)ほとんどの主流のプログラミング言語よりも簡単で短く表現でき、他の関数型言語と同様、信頼性の高いプログラムの開発が命令型言語に比べて短期間で可能になったという報告がある。
Object Pascal
Object Pascal(オブジェクト パスカル)は、コンピュータのプログラミング言語のひとつ。広義にはPascal言語にオブジェクト指向の概念を導入したものを指し、狭義には統合開発環境 (IDE) であるDelphiや、コンパイラであるFree Pascalで使用される言語仕様を指す。
OCaml
OCaml( 、オーキャムル、オーキャメル)は、フランスの INRIA が開発したプログラミング言語MLの方言とその実装である。MLの各要素に加え、オブジェクト指向的要素の追加が特長である。かつては Objective Caml という名前で、その略として OCaml と広く呼ばれていたが、正式に OCaml に改名された。
Pascal
Pascal(パスカル)は、1970年に発表されたプログラミング言語。ニクラウス・ヴィルトにより構造化プログラミングとして設計・デザインされた。名称は、ブレーズ・パスカルにちなむ。 ALGOL、ALGOL Wをベースとし、簡素だがよく整った言語仕様(構文と意味)を持つ。プログラミング教育を意識しており、「判読性」を重視している反面、「最適化」を犠牲にしていると批判もされた。 言語的には、自身のコンパイラを自身で書けるといった、言語処理系のブートストラップを備え、多くの#実用プログラム例を持っている。
Printf
printf(プリントエフ)は、C言語の標準ライブラリに属し、ヘッダーファイル stdio.h で宣言されている関数である。引数で与えられた書式付きの文字列を、環境によって設定された標準出力 (stdout) に出力する。その機能は国際標準規格「ISO/IEC 9899:1999」(通称C99)および日本産業規格(旧称・日本工業規格)による翻訳「JIS X 3010:2003」においてprintf関数は,与えられた実引数の前にstdoutを実引数として付加したfprintf関数と等価とする。と規定されている (7.19.6.3)。 この関数は、第1引数に与えられた文字列を出力する。C言語の他の単純な入出力関数に比べ、比較的複雑な構造を持っており、第1引数の文字列のなかで書式を指定することで、第2引数以降の任意の数の引数(可変長引数)を、書式に従って出力することができる。また、整数型(int型)の戻り値を持ち、出力に成功した場合には転送したバイト数、出力に失敗した場合には負数を返却する。
Return文
return文(リターンぶん、return statement)とは、プログラミング言語における文の一つである。goto文やbreak文、continue文のようなジャンプ文 に分類される。サブルーチンからの復帰に使われ、復帰と同時に値を返すことができる。その値は戻り値(もどりち、return value)、返り値(かえりち)、返却値(へんきゃくち)あるいはそのままreturn値(リターンち)などと呼ばれる。 日本産業規格(旧称・日本工業規格)では、C言語の国際標準規格「ISO/IEC 9899:1999」(通称C99)の翻訳「JIS X 3010:2003」およびC++の国際標準規格「ISO/IEC 14882:2003」(通称C++03)の翻訳「JIS X 3014:2003」において、「返却値」という訳語を使用している。
Scanf
scanf(スキャンエフ)は、C言語の標準関数。ヘッダーファイル で定義されている、書式付き入力関数である。 標準入力(大抵はキーボード)からの入力を、書式に従って変数に読み込む機能を持つ。標準出力関数のprintfと対比させて考えると分かりやすい。 ユーザーからの入力を受ける、ごく基本的な機能を持つにもかかわらず、後述するように異常入力(エラー)に配慮すると相応の手間がかかるため、テストプログラムや入門書を除いてはあまり使われない。 このファミリーの関数には、入力ストリームを指定できる fscanf や、メモリ上の文字列ストリームを入力対象とする sscanf などがある。
Standard Template Library
Standard Template Library (STL) は、プログラミング言語C++の規格で定義された標準ライブラリの一つ。ヒューレット・パッカード社在籍の研究者(当時)であったアレクサンドル・ステパノフ等によって考案され、後にANSI/ISO標準に組み込まれた。
見る TypedefとStandard Template Library
Time t
time_t型は、システム時刻を表現あるいは保存するために標準Cライブラリが定義しているデータ型である。この値は標準のtime()ライブラリ関数によって得られる。このデータ型は、標準の ヘッダファイルでtypedefによって定義されている。ISO Cでは、time_tを数値型と定義しているが、データ型・値の範囲・周期や、エンコーディング方法は定義していない。また、時刻の値に対する算術演算の動作は定義していない。 UNIXとPOSIX互換システムでは、UNIX時間(協定世界時 (UTC) 1970年1月1日0時00分00秒からの秒数)を表す符号付の整数(通常は32または64ビット)でtime_t型を実装している(閏秒は数えない)。いくつかのシステムでは、負の時刻値をサポートするが、サポートしないシステムもある。
Windows API
Windows API(ウィンドウズ エーピーアイ)とは、Microsoft Windowsのシステムコール用APIのこと。特に32ビットプロセッサで動作するWindows 95以降やWindows NTで利用できるものはWin32 APIと呼ばれる。また、それらのWindowsにおけるWin32 APIの実装をWin32と呼ぶ。 64ビットプロセッサ向けのWin64 APIも含める場合は「Windows API」という包括的な名称が正確だが、慣習的にWin32と言えばWin64も含んでいることがある。
抽象データ型
抽象データ型(ちゅうしょうデータがた、abstract data type、ADT)とは、データ構造とその操作手続きを定義したデータ型、またはデータ抽象データ抽象(data abstraction)とは、データ型の詳細定義とその操作に関する手続きを情報の局所性が高まるようにソースコード中の一カ所にまとめて記述するための記法のことを言う。情報が一カ所に局所的にまとめて記載されているため、非公開(private)部分の変更であればその定義部分の詳細を変更するだけでソースコード全体の修正が完了する。 データ型の詳細定義とその操作手続きの局所的記述を実現する方法は複数あり、抽象データ型はその一例である。
構造体
構造体(こうぞうたい、structure)はプログラミング言語におけるデータ型の一つで、1つもしくは複数の値をまとめて格納できる型。それぞれのメンバー(フィールド)に名前が付いている点、またメンバーの型が異なっていてもよい点が配列と異なる。レコードという名前の類似機能として実装されている言語もある。 C/C++やC#などでstructとしてサポートされているほか、Visual Basic/VBAのユーザー定義型Typeや、PascalやAdaのrecord型も構造体に相当する。 クラスベースのオブジェクト指向言語では、抽象データ型としてのクラスが構造体の役割をも内包する。Cの文法を継承した言語ではstructキーワードを含むこともあるが、言語によってその役割や性質は異なる。
見る Typedefと構造体
汎整数拡張
汎整数拡張(はんせいすうかくちょう、integral promotion)とは、C言語およびC++において整数の扱いをする上で、ある条件のもとにその整数の型を格上げ、あるいは格下げする変換のことをいう。JIS X 3010:2003(C99相当)では「整数拡張」(integer promotion) と呼び、JIS X 3014:2003(C++03相当)では「汎整数昇格」(integral promotion) と呼ぶが、意味は変わらない。
参考情報
C++
- Boost C++ライブラリ
- C++
- C++11
- C++14
- C++17
- C++20
- CとC++の演算子
- JavaとC++の比較
- New演算子
- Pro*C
- RAII
- SFINAE
- Sizeof
- Typedef
- コピーの省略
- コンセプト (C++)
- コンマ演算子
- テンプレート (プログラミング)
- テンプレートの部分特殊化
- テンプレートメタプログラミング
- デストラクタ
- トレイト
- ビャーネ・ストロヴストルップ
- ワイド文字
- 仮想継承
- 可変長引数
- 名前修飾
- 実引数依存の名前探索
- 実行時型情報
- 未定義動作
C言語
- ANSI C
- C11 (C言語)
- C99
- CERT Secure Coding Standards
- CとC++の演算子
- C言語
- Duff's device
- Iso646.h
- MISRA C
- Pro*C
- Sizeof
- Typedef
- コンマ演算子
- デニス・リッチー
- ブライアン・カーニハン
- ブロック (C言語拡張)
- プログラミング言語C
- ワイド文字
- 共用体
- 可変長引数
- 未定義動作
- 構造体
- 標準Cライブラリ

