タグ

C言語と電子工作に関するWeintraubのブックマーク (14)

  • CMakeの使い方(その1) - Qiita

    はじめに 2月のはじめ頃、CMakeを使ってビルドを自動化しようと思い、色々ググってCMakeLists.txtを作り試行錯誤したのですが、その時は結局断念しました。というのも、abcというステップがあるとすると、ググッて得られる解説はabcのaやbが抜けていきなりcから解説されたものが多く、初心者にはきつかったからです。特にcmake.orgのチュートリアルはまさにその典型で、チュートリアルのStep 1からして長過ぎて、当に何が必要なのかわかりにくい・・・orz ところが、今学期受けているHigh Performance Computingという講義で行われたCMakeの使い方の解説がわかり易すぎて、あっという間に自作ライブラリをCMakeでコンパイルすることができるようになり、CMakeの便利さに感動してしまいました。私と同じくCMake初心者という方にこの感動を共有すべく、ここに

    CMakeの使い方(その1) - Qiita
  • 【C言語】配列を引数として渡すことの考察(2次元配列まで) - Qiita

    はじめに C言語の関数で、配列を引数として渡す方法については、数多のサイトで紹介されています。 ただし、2次元配列については方法が複数あり、うまく使い分けることが必要となりますので、そのあたりの考察を含めて書いておきます。 わかりやすいように図表をつけて、1次元配列から2次元配列まで順を追って書いていきます。 使用している環境はmacで、コンパイラはgccです。 1次元配列(数値型)を引数として渡す まずは、基形として、数値型(int)の1次元配列についてです。 C言語では、配列そのものを引数として渡せないので、ポインタを引数として渡します。 具体的には、次のソースコード中、main関数4行目にあるnum_arr(num, numlen);のところとなります。 ●ソースコード #include <stdio.h> void num_arr(int *num, int numlen) {

    【C言語】配列を引数として渡すことの考察(2次元配列まで) - Qiita
  • C初心者が知っておきたいヘッダーファイルとリンクの基礎知識

    C初心者が知っておきたいヘッダーファイルとリンクの基礎知識:目指せ! Cプログラマ(終)(1/4 ページ) プログラミング言語の基となる「C」の正しい文法や作法を身に付ける入門連載です。今回は、ヘッダーファイルとリンクを中心に、翻訳単位、ファイル有効範囲、外部定義と仮定義、外部結合と内部結合、結合と記憶域期間、インライン関数の結合、static、extern、inlineなどについても解説。 C言語の処理を複数のファイルに分けて書くには 入門連載「目指せ! Cプログラマー」では、これまで、C言語の初心者でも分かるようにさまざまな基文法や基礎構文、標準ライブラリの使い方などを解説してきました。新社会人はもちろん、C言語に入門したいという方もあらためてバックナンバーを読み返してみてください。 連載もいよいよ終盤です。今回は、C言語の処理を複数のファイルに分けて書く方法について解説します。

    C初心者が知っておきたいヘッダーファイルとリンクの基礎知識
  • Callback関数を知らん人がまず理解すべきことのまとめ。

    カメラ, IT, ガジェット, プログラミング等々, 自由気ままに気になったことを書き綴るブログです。

  • セクション名の意味

  • 16進をASCIIコードに変換する手法

    間違えた(^^;;; _itoa http://www.microsoft.com/japan/msdn/library/defa … で、文字列に変換し、必要であれば、toupperで大文字に。 0x0~0xfまでの範囲で、ロジックを組むのであれば、 if(a >= 0x0 && a <= 0x9) { a += '0'; } else if(a >= 0xa && a<= 0xf) { a = 'A' + ( a - 10); } かな? この回答への補足 回答有難う御座います。 教えて頂いたアドレスのホームページ上に下記のようなプログラムと出力結果がでていましたがbase9以降の結果がなぜそうなるのかが?です。すいませんが教えて下さい。 for( r=10; r>=2; --r ) { _itoa( -1, buffer, r ); printf( "base %d: %s (%d

    16進をASCIIコードに変換する手法
  • ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita

    はじめに はじめまして。 NTTデータ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 C や C++ を使用しているとしばしばビット演算を行う場面が出て来ます。 計算機リソースが限られている状況では、ビットを用いることでデータ量を少なく済ませたり、計算コストを小さく抑えたりすることができるメリットがあります。 記事では、ビット演算を用いて実現できる処理について、簡単なものから高度なものまで集大成します。極力わかりやすく頑張って執筆しました。特に前半 4 つはビットの説明の中でもかなりわかりやすい方だと思います。後半の 7 つのテーマは比較的高度なアルゴリズムの話題ですので、フラグ管理やマスクビットについて詳しく学びたい方は前半 4 つを中心に読んでいただいて、後半 6 つは必要に応じて読んでいただければと思います。反対にビットの知識はあってビットを用いたアルゴリズ

    ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita
  • C言語 enum 列挙型【簡単!重複しない連番を作り出す方法】

    こんにちは、ナナです。 構造体に続いて、ユーザー定義型の1つである、enum(列挙型)を紹介しましょう。 例えばスーパーに行くとたくさんの商品が置いてあります。実はそれらの商品には異なる数値が紐づけられており値段などがわかる仕組みになっているのです。 この商品に付ける数値で大事なことは「重複しない数であること」です。このような連番が欲しくなるシーンで活躍するのが列挙型(enum)です。 列挙型は構造体と似た部分があるため、構造体を知らない方は『C言語 構造体 struct【情報のパッケージ化とそのメリット】』を事前に読んでおくとよいです。

    C言語 enum 列挙型【簡単!重複しない連番を作り出す方法】
  • ポインターを理解しよう

    ポインターは、ほかの型と違って、ほかのオブジェクトを参照する値を入れておくためのものです。ポインターの理解はCの学習の肝となる部分です ポインターはオブジェクトを参照する 今回説明するポインターは、型の1つです。 型にはいろいろありますが、例えばint型のオブジェクトにはint型の値を、double型のオブジェクトにはdouble型の値を入れることができました。ポインターのオブジェクトには、他のオブジェクトを参照するための値を入れることができます。 ひとくちにポインターと言ってもいろいろな型があります。いずれも他のオブジェクトを参照しますが、その参照先のオブジェクトの型によりポインターの型が定まります。例えば参照先のオブジェクトの型がintとすると、そのオブジェクトのポインターは「intへのポインター」という型になります。 「intへのポインター」という型は、int * と書きます。

    ポインターを理解しよう
  • C言語 ビットフィールドを使ったビット単位のパッケージ方法紹介

    こんにちは、ナナです。 構造体の仲間であるビットフィールド機能を紹介しましょう。 ビットフィールドは構造体の仕組みを利用するため、構造体に関する知識は必ず押さえておきましょう。次の記事を参考にしてください。

    C言語 ビットフィールドを使ったビット単位のパッケージ方法紹介
  • 制御文字 - Wikipedia

    コンピューティングと電気通信において、制御文字(せいぎょもじ、英: control character)とは、文字コードの規格で定義される文字のうち、ディスプレイ・プリンター・通信装置などに対して、特別な動作(制御)をさせるために使う文字である。制御キャラクタともいい、情報処理用語規格では「制御機能文字」と呼ばれている。 「文字」という名前であるがディスプレイやプリンターには表示されない。そのため、非表示文字(ひひょうじもじ、英: non-printing character、印字不可文字)とも言う。それに対し、制御文字以外の表示可能な文字を図形文字(英: graphic character)という[注釈 1]。図形文字と制御文字は電気信号上は区別がなく、同じデータストリーム上に現われる。これを帯域内信号方式(英語版)という。 制御文字にどのような文字コードを割り当てるかは、ASCII、E

  • 組み込みシステム上でのC++ | POSTD

    去年の10月、私が所属している 会社 の部署で、組み込みファームウェアの開発をC言語からC++に切り替えました。C++のクラス、リソースの自動クリーンアップ、パラメータ多相、そして強化された型安全性などは、汎用OSをデスクトップ機で稼働している時と同様、リアルタイムOS(RTOS)やベアメタル上でも便利です。C++を使えば、安全で表現豊かなファームウェアを書くことができます。 しかしC++のこの自動的な魔法は諸刃の剣とも言えます。いくつかの機能は、組み込み環境 ^(1) には搭載したくないシステムのファシリティに依存するからです。ツールチェーン周りをどうするかも厄介です。 memcpy やアトミック操作、ハードウェア固有の浮動小数点関数などの重要なファシリティが提供されるので、 libgcc と libstdc++ を完全に破棄するのではなく、特定の部分を避けて使わなくてはなりません。 こ

    組み込みシステム上でのC++ | POSTD
  • C言語の正しいヘッダファイルの書き方 - saito’s blog

    最近、仕事でC言語での組み込み系の開発に携わっています。 開発中のコードを眺めていると、ヘッダファイル内にstatic関数のプロトタイプ宣言を記述していたり、ヘッダファイル内で不必要に他のヘッダファイルをインクルードしているなど、ヘッダファイルの書き方が分かっていないと思われる箇所が多々見られました。 実際、C言語の入門書でもヘッダファイルの書き方を詳しく説明しているものは、僕の知っている限りでは存在しないので、C言語を使っていてもヘッダファイルの正しい書き方を知らない人が少なくないのではないかと思われます。 そこで、このエントリでは、C言語のヘッダファイルの書き方について、僕が知っているテクニックをまとめてみました。 インクルードガードを書く ヘッダファイルファイルで他のヘッダファイルをインクルードしていると、いつの間にか同じヘッダファイルを2回インクルードしてしまうことがあります。 例

    C言語の正しいヘッダファイルの書き方 - saito’s blog
  • 古典回路屋:電子工作の作品集・解説

    電子工作のページ

  • 1