タグ

Cに関するtyosuke2011のブックマーク (56)

  • An Introduction To The SQLite C/C++ Interface

    1. Summary The following two objects and eight methods comprise the essential elements of the SQLite interface: sqlite3 → The database connection object. Created by sqlite3_open() and destroyed by sqlite3_close(). sqlite3_stmt → The prepared statement object. Created by sqlite3_prepare() and destroyed by sqlite3_finalize(). sqlite3_open() → Open a connection to a new or existing SQLite database. T

  • 第4章 クラスとモジュール

    章ではクラスとモジュールの作りだすデータ構造について詳細を見ていく。 クラスとメソッドの定義 まずはCレベルでRubyのクラスを定義する方法を少しだけ見ておきたいと思う。 この章ではある意味「特殊な」ところばかりを追求するので、圧倒的多数を占 める通常ルートを先に知っておいてほしいのだ。 クラスとメソッドを定義する主要なAPIは以下の六つである。 rb_define_class() rb_define_class_under() rb_define_module() rb_define_module_under() rb_define_method() rb_define_singleton_method() 多少の派生バージョンはあるものの、拡張ライブラリはもちろん、基クラス ライブラリまでのほとんどがこれだけのAPIで定義されている。順番に紹介し ていこう。 クラスの定義 rb_d

  • 第3章 名前と名前表

    st_table メソッドテーブルやインスタンス変数テーブルとしてst_tableは既に何度か登 場してきた。章ではまずこのst_tableについて詳しい作りを見ていくことに しよう。 概要 st_tableはハッシュテーブルだということはもう言った。ではハッシュ テーブルは何かと言うと一対一対応を記録するデータ構造である。一対一の対 応とは例えば変数名とその値、関数名とその実体、などだ。 ただしもちろんハッシュテーブル以外でも一対一対応は表せる。 例えば次のような構造体のリストを使ってもいい。 struct entry { ID key; VALUE val; struct entry *next; /* 次のエントリを指す */ }; しかしこの方法は「遅い」。もしリストが1000個あったら最悪1000回リンクを たぐって探さなければならない。つまり要素の個数に比例して検索時間が長く

  • Webエンジニアが組み込みプログラミングをすることになったときに知っておきたかったC言語の知識 - Qiita

    IoTエンジニアになって半年が過ぎたkazuphです。 (IoTって言葉はいつごろまで使えるんですかね(・∀・)?) PerlRubyでWebアプリケーションを書いていたエンジニアが、C言語でゴリゴリ組み込みプログラミングをすることになったときに、どんなことを知っていたかったかなと思い出しながら書いてみたいと思います。 その辺にある普通のC言語の入門書には載ってない知識が中心です。 ちなみにArduinoの例が多いですが、実際にはほとんどの期間を某チップの某SDKを使って開発しました。 わかる方はそれを想像しながらだと面白いかもしれません(・∀・) 半年の半分はiOSアプリ作っていたので、実質3ヶ月くらいの知識だと思ってください。 間違いの指摘など是非々々お待ちしておりますm(_ _)m こんな記事も書いてます。 IoTやるならまず知っておきたいパーツ屋・オンラインショップ IoTアプリ

    Webエンジニアが組み込みプログラミングをすることになったときに知っておきたかったC言語の知識 - Qiita
  • DXライブラリ置き場 使い方説明

    VisualStudio2013 を使用してDXライブラリを使ったソフトを制作するには以下のような手順を踏みます。 1.DXライブラリを使うために必要なものを揃える 2.プロジェクトの作成 3.プロジェクトへ新規プログラムファイルを作成・追加 4.DXライブラリを使用するためのプロジェクトの設定を行う 5.プログラムを組む 6.プロジェクトのビルド、実行 1.DXライブラリを使うために必要なものを揃える VisualStudio 2013 でDXライブラリを使うには以下のものが必要です。 ・VisualStudio2013 ・VisualC++用 DXライブラリ まず VisualStudio2013 は、お手元にありますね。 二つ目の VisualC++用 DXライブラリはサイトのこちらのページからダウンロードすることができます。 これがないとDXライブラリを使

  • C言語講座>サイトマップ

    C言語講座>サイトマップ C言語講座のサイトマップ C言語講座 ガイダンス [この講座の特徴][この講座をお勧めしたい方][よくあるご質問] 講座の出入り口 [総目次] 入出力(1) [はじめに][最も短いCのソース][画面に文字を表示][整数を入力して画面に表示][文字を入力して画面に表示][浮動小数点数の入力と表示][printf( )とscanf( )の戻り値][関数を自作][変数の記憶クラス][変数の取りうる値の範囲][演算子(1)][演算子(2)][代入演算子][記号定数と変数の型宣言][列挙定数] 流れを制御する [for ループ(1)][for ループ(2)][whileループ][if ( ) - else文(1)][if ( ) - else文(2)][switch - case文][三項演算子(1)][三項演算子(2)][マクロ処理][gotoとlabel] 入出力(2)

  • C標準ライブラリ関数一覧

    第1項:入出力 <stdio.h> 第2項:汎用 <stdlib.h> 第3項:文字処理 <ctype.h> 第4項:文字列処理 <string.h> 第5項:数学関数 <math.h> 第6項:時間 <time.h> 第7項:制御 [1]入出力 <stdio.h> 主にファイルを取り扱う関数です。 C言語では、ディスク以外の周辺機器もファイル扱いできます。 また、規定のファイルポインタとしてこれらを扱うことが出来ます。 [  規定のファイルポインタ  ] stdin 標準入力(普通はキーボード) stdout 標準出力(普通はディスプレイ) stderr 標準エラー出力(普通はディスプレイ) これらは、リダイレクト等の方法でユーザーが変更することもできますし、 環境によっては、別の機器に関連づけられたり、無効になっていることもあります。 [  fopen  ] 関数型

  • C入門

    C入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 C入門をはじめます。これは、大学で受け持っている「Cの半期講義」の補助教材です。 ご利用になる場合は以下の点にご注意ください。 1. C++入門やJava入門の前提講義ではありません。 C++入門もJava入門も基礎知識を仮定していません。それらに興味のある人は、直接どうぞ。^^) 特に、私は、「C++Javaを勉強するなら、まずCから」とは思いません。 「C → C++Java」より「C++Java → C」の順に勉強した方がよいかもしれません。 ただし、いずれにしても、Cを知っていて悪いことはありません。 2. 「プログラマ予備軍」のためのハードな講義ではありません。 あくまで半期科目です。「基礎教養」的な内容にしようと思っています。 特に、はじめてプログラミングをする人向きに書きます。

  • コマンドライン

    main()関数への引数 main()関数も「関数」なので当然引数を受け取ることができます では、main()関数はどこから引数を受け取るのでしょうか? VC++などのGUIWindowsなどの、グラフィカルなインタフェイスのこと)での 総合開発環境を使っている人は、この章の理解は難しいかもしれません main()関数は、実はコマンドラインから引数を受け取ることができるのです 実用的なアプリケーション開発を目指すならば、欠かせない知識ですね そのため、この章で作ったプログラムの実行にはDOSプロンプトから引数を指定して実行する必要があります コマンドライン恐怖症の方は、この機会にぜひ main()関数には、二つの引数が渡されます 一つはコマンドラインから渡された引数の数 もう一つはコマンドライン引数で渡された文字列です 一般的には、第一仮引数をargc、第二仮引数をargvと呼びます a

  • 参照とポインタ

    この文章はプログラマでもプログラミング言語の専門家でもないただのプログラミング好きの私が適当に書きつづったものです。よってこの文章には正しい箇所もあるでしょうが、間違っている箇所もかなりあるはずです。ご指摘いただけたらと思います。また、この文章を読んでも内容を鵜呑みにしないでください。鵜呑みにした結果何か起きても知りません。 "諸悪の根元"-ポインタ Cの特徴の1つとして、また初心者が必ずつまずく(*)とされる難所としてポインタがあげられるわけだが、ポインタはどうも最新流行のプログラミング手法の中では諸悪の根元として忌み嫌われているようだ。 (*) 自慢するわけではないのだが、私は別にポインタでつまずいた記憶はない。もちろん、効果的な使い方などはその後いろいろなコードを読んでいく中で身に付いていったわけだが。 ポインタは確かに諸刃の剣である。非常に便利な反面、危険でもある。例えば次のような

  • visual C エラー集 - researchmap

    misrac2012.c(4290) : warning C4244: '=' : 'int' から 'uint8_t' への変換です。データが失われる可能性があります。 misrac2012.c(4297) : warning C4293: '<<' : シフト数が負の値であるか、大きすぎます。定義されていない動作です misrac2012.c(4374) : warning C4244: '=' : 'int' から 'uint8_t' への変換です。データが失われる可能性があります。 misrac2012.c(4454) : warning C4244: '初期化中' : 'float' から 'uint8_t' への変換です。データが失われる可能性があります。 misrac2012.c(4459) : warning C4245: '=' : 'int' から 'uint8_t'

  • checkstack.pl で関数のスタック消費量を調べる - bkブログ

    checkstack.pl で関数のスタック消費量を調べる Linux カーネルのソースコードに付属する checkstack.pl を使うと、C/C++ のプログラムの関数のスタック消費量を調べることができます。checkstack.pl は objdump -d のディスアセンブルの出力からスタックポインタの操作をパターンマッチしてスタックの消費量を計算しています。 入手方法 checkstack.pl は Linux カーネルのソースコードに付属しています。Debian GNU/Linux sarege なら次のようにコマンドラインから実行して取得できます。ソースツリーに含まれる scripts/checkstack.pl が目的のものです。 % apt-get source kernel-source-2.6.8 使い方 checkstack.pl の使い方は簡単です。スタックサイ

  • 型変換

    第4章 型変換 型変換によって、異なる変数の型を同一演算上で用いることが許されます。 4-1.暗黙の型変換 コンパイラが自動的に無難な型変換を行うものです。 (1)代入時の変換 左辺の型と右辺の型が異なっている場合は、左辺の型に変換します。 例えば下の例では、double型変数の x に 浮動小数点数 3.1415 が格納されていても、int型変数 a に代入した時点で小数点以下が切り捨てられて、3 になってしまいます。これは、整数型の int では小数点以下が格納できないために切り捨てられてしまうからです。 (2)式の中で行われる変換 式中で異なる型の定数や変数が現れたときは、精度の高い型に統一します。精度は今まで学習したものでは、下図のように char型 が一番低く、double型が一番高くなります。

  • コンパイル時の典型的エラー集

    コンパイル時に、たとえば $ gcc -o prog1 prog1.c prog1.c: In function `main': prog1.c:9: error: syntax error before ';' token prog1.c:9: error: syntax error before ')' token prog1.c: At top level: prog1.c:14: error: syntax error before "return" のようにエラーがでます。 このエラーは得体の知れない英語ではなく、比較的わかりやすい、意味のある英語です。 「In function `main'」=「main()のなかのどっかで」 「9: syntax error before ';'」=「9行目の;の前に文法エラー」 などです。 間違いをつぶしていくこつは、 とりあえず、一番最初

  • Geekなぺーじ : C++は中高生のセックスに似ている

    「Why C++ is like teenage sex」というネタがあるようです。 古さを多少感じますが結構笑えます。 色々な英語サイトで紹介されており、実際にどこがオリジナルなのかは発見できませんでした。 検索すると微妙に内容が異なる物もありますが、内容は以下のような感じです。 興味がある方は、「Why C++ is like teenage sex」という検索キーワードで検索してみて下さい。 C++は中高生のセックスに似ている。何故ならば。。。 みんな、そればっかり考えている みんな、その話ばかりしている みんな、他の人もやっていると考えている 実際にやっている奴はあまりいない やっている少数の人々は: 下手 次はもうちょっと上手になってるだろう 安全にやってるわけじゃない 成功体験を言いふらしてるけど、実際にやったことがある奴は少ない 原文 C++ is like teenage

  • コンパイル時に出てくる代表的なエラー

    C言語では、ソースに問題があると、コンパイル時に様々なエラーを出してくれます。ここでは、代表的なエラーメッセージと、その内容について説明します。 ただし、エラーメッセージは、使用するコンパイラによって異なりますので、注意しましょう。

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 配列とポインタの奇妙な関係

    第1項:配列のような使い方 第2項:ポインタ専用の書き方 第3項:古き悪きポインタ演算 第4項:アドレスのことは忘れましょう [1]配列のような使い方 前節では、関数に配列を渡すには配列の先頭要素のアドレスを渡していたと説明しました。 ところで、次のプログラムは、ポインタ型の引数にした前節のプログラムですが、 このプログラムを見て、どこか不自然な部分は見あたらないでしょうか? #include <stdio.h> int getaverage(int *data); int main(void) { int average,array[10] = {15,78,98,15,98,85,17,35,42,15}; average = getaverage(array); printf("%d\n",average); return 0; } int getaverage(int *da

  • errorLNK2019未解決の外部シンボルが表示され、解決できません。C++の参考書を見て入力してコンパイルしたのですが、このエ... - Yahoo!知恵袋

    error LNK2019 未解決の外部シンボル が表示され、解決できません。C++の参考書を見て入力してコンパイルしたのですが、このエラーが出てきてしまいます。なにが問題なのか教えていただけたら幸いです。 error LNK2019 未解決の外部シンボル が表示され、解決できません。C++の参考書を見て入力してコンパイルしたのですが、このエラーが出てきてしまいます。なにが問題なのか教えていただけたら幸いです。 ーーーーgetQE.hーーーー bool getQE(double a, double b, double c, double *x1, double *x2); ーーーーgetQETest.cppーーーー #include "getQE.h" #include <iostream> using namespace std; int main() { double a, b, c,

    errorLNK2019未解決の外部シンボルが表示され、解決できません。C++の参考書を見て入力してコンパイルしたのですが、このエ... - Yahoo!知恵袋
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。