タグ

Cに関するpipoのブックマーク (14)

  • 僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…もう間違えないための覚え書き - Magnolia Tech

    2021/8/6更新 Thunderbolt4ケーブルがリリースされてきたので、アップデートしました。 blog.magnolia.tech 自分用の買い物メモ USB Type-Cケーブルの選び方は難しい…あらゆる規格をサポートするけど、あらゆる規格を”同時に”サポートするわけではないので、主にケーブル長や用途などで上手く選ばないと、使えなかったり、無駄に高いケーブルを選ぶことになってしまう そんなことを起こさないためのメモ あれこれ迷わないための”全部入り” 低速から高速まで色々な周辺機器の接続に使う(USB2.0, USB3.1, Thunderbolt3) ディスプレイ接続に使う(DisplayPort) 給電に使う(最大100W) などなどを考えると、長さが1.0m以下で、USB PD 5A(100W)対応と書かれているThunderbolt3ケーブルを選ぶと全部対応している。

    僕らはいつまでUSB Type-Cケーブルを選ぶのに迷うのだろう…もう間違えないための覚え書き - Magnolia Tech
  • 組み込みシステム上でのC++ | POSTD

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

    組み込みシステム上でのC++ | POSTD
  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

  • C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita

    インクルードするだけで使えるNon-movingで正確なGCをC言語用に作りました。 行数がコメントを除いて100行に満たない非常に小さなライブラリです。 GCのアルゴリズムとしてはCheneyのコピーGCを採用しています。 通常のCheneyのコピーGCではメモリ空間のうち半分が無駄になってしまいメモリ効率が悪かったり、 GC発生時にオブジェクトが移動してしまいC言語のようなポインタを直接触れる言語との相性が悪いという欠点がありました。 今回はヒープ全体を二重連結リストとして管理することでそのような問題を解決しています。 ちなみにこれはTreadmill GCのアイデアと同じです。(が、アルゴリズム自体はTreadmill GCではありません。) APILinuxのlist.hに非常に近い見た目になっています。 ある構造体をgcで管理したい場合はstruct gc_head型のメンバを

    C言語でインクルードするだけで使えるNon-movingで正確なコピーGCを作った - Qiita
  • マクロ展開の注意点を試す。 - tomohikosevenの日記

    はじめに 記事は、マクロについての注意点を実際に試したことをまとめたものである。 概要 下記のページに書かれているマクロについての違反コードと適合コードを試してみた。 PRE05-C 違反コード マクロで展開された結果が"4"(数字の4の文字列)の想定が、そうならないソースである。 確認コマンド:gcc -E illegal.c illegal.c andre@andre-VirtualBox:~/work/PRE/PRE05-C$ cat illegal.c #define str(s) #s #define foo 4 str(foo); 確認コマンドでマクロが展開された後のソースを下記に示す。 確認コマンド実行結果 andre@andre-VirtualBox:~/work/PRE/PRE05-C$ gcc -E illegal.c # 1 "illegal.c" # 1 "<組み

    マクロ展開の注意点を試す。 - tomohikosevenの日記
    pipo
    pipo 2015/03/30
    [macro]
  • C言語を独学で習得するのに適した入門書を探してまとめてみた件について - 旧ID:itiriのブログ

    ※2017年11月8日、「やさしいC 第5版」「かんたん C言語」「ふつうのLinuxプログラミング」「C言語による スーパーLinuxプログラミング」「モダンC言語プログラミング」のリンクを修正。 Amazonで評判が良いを、発売日順に並べてみた。 入門書 脱 初心者 アルゴリズム リファレンス Linuxプログラミング プログラミング技術 デバッグ その他 厳選6冊 その他 Webサイト 入門書 『C言語改訂版1、2』を読んだ後に『独習C』を読めばだいたい理解できると思う。 やさしいC 第5版 (「やさしい」シリーズ) 作者: 高橋麻奈出版社/メーカー: SBクリエイティブ発売日: 2017/06/14メディア: 単行この商品を含むブログを見る価格2,700円高橋麻奈さんのはどれも分かりやすい(『やさしいJava』とか、『やさしいXML』とか)。ただし内容は薄いので、他のプログラ

    C言語を独学で習得するのに適した入門書を探してまとめてみた件について - 旧ID:itiriのブログ
  • 「モダンC言語プログラミング」を読んだ!C言語の組込みエンジニアのためのモダンテクニックが満載

    とてもエキサイティングなに出会い、一気に読んでしまいました。感想を書こうと思います。 モダンC言語プログラミング - 花井志生 https://amzn.to/3DKnQHT ターゲット読者層は組込み分野!# こののターゲット読者はズバリ、組込みエンジニア。ソースコードのサンプルも、ズバリ組込みな内容を扱っています。C言語を使う人=組込みの人と決めつけているよう。書籍のあちこちで、このアプローチを組込み開発で適応するためにはどうすればいいかという考察が入るのがよい。 TIOBEというプログラミング言語の統計を見ると、C言語を利用している人がプログラマの2割程度いることがわかる。自分はこのデータを初めて知ったけれども、まずこの事実をしれたことは嬉しい事だ。C言語はいかに重要なのかという論題が冒頭で熱く語られる。 www.tiobe.com/content/paperinfo/tpci/i

    「モダンC言語プログラミング」を読んだ!C言語の組込みエンジニアのためのモダンテクニックが満載
  • プログラミング言語 C の新機能

    7. 文法一般 この章では C 言語に新たに加えられた指示付きの初期化子や複合リテラルといった文法や、暗黙時の宣言に関する変更といった、変更された文法について説明します。 7.1 暗黙の関数宣言 現在の C 言語の規格では、ある関数から他の関数を呼び出す時、とくにその関数のプロトタイプを宣言しなくても使用することができました。例えば stdio.h を読み込まずに、printf を使用するといったことです。しかし、今度の C 言語ではそのような場合、その関数の呼び出しは規格上未定義の動作となります。ただ実際には多くの処理系では警告を出してコンパイルするよう実装されることでしょう。この辺の機能は C++ に近くなっていますね。 7.2 宣言時の暗黙の型 手続き型言語では、一般的に変数や関数などを宣言して使用する必要があります。もちろん C 言語も例外ではありません。しかし C 言語では特に型

  • モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室

    随時更新していきます。 モダンなPerlの開発環境の構築方法 モダンなPHPの開発環境の構築方法 モダンなPythonの開発環境の構築方法 モダンなJavaの開発環境の構築方法 モダン(かもしれない)なEclipse環境(Java)の構築方法 モダンなC, C++の開発環境の構築方法 モダンなMySQLの開発環境の構築方法

    モダンなプログラミング言語の開発環境の構築方法まとめ - ネットサービス研究室
  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • C言語をブラウザで実行、Ruby/Python/Perlも然り | エンタープライズ | マイコミジャーナル

    Mozillaの研究部門に所属しているAtul Varma氏のブログにおいて、Running C and Python Code on The Webのタイトルで興味深い内容が紹介されている。タイトルだけ見るとWebアプリケーションでC言語やPythonのコードを実行すると言う話のようだが… 同氏のブログによれば、Adobe Systems, Scott Petersen氏が現在C言語で作成したコードをTamarin仮想マシンで実行できるようにするツールチェインを開発しており、近々オープンソースソフトウェアとして公開するという。TamarinはAdobeからMozillaへ寄贈されたJavaScriptエンジンだ。Firefox 3.0には取り込まれていないが将来的にはTamarinベースのJavaScriptエンジン実装がFirefoxに取り込まれるとみられている。時期は未定だがFire

  • メモリ操作の安全性を確保する、ANSI C規格準拠C言語コンパイラ | スラド デベロッパー

    数日前の話になりますが、産業技術総合研究所は4月11日、既存のC言語プログラムにメモリ操作の安全性を付与できるコンパイラ、「Fail-Safe C — release 1」を開発したと発表しました(産総研のプレスリリース)。プレスリリースや開発部門である情報セキュリティ研究センターの解説ページによると、既存のソースコードをそのままこのコンパイラに掛けるだけで、危険なメモリ操作の自己チェック機能を備えた実行可能ファイルが生成されるという仕掛けのようです。さらに、このコンパイラは、ANSI C規格に準拠しながら、厳密には規格違反だが既に一般的になっている様々な記述手法についても安全な範囲でサポートしているとのこと。 バッファオーバーフロー等、メモリ破壊が原因のソフトウェア脆弱性が後を絶たない現状ですが、こういうコンパイラが普及したら少しはそのような状況が改善されるのかなぁ、と期待します。このコ

  • ZDNetのポインタ解説記事で勘違い | スラド デベロッパー

    ZDNetに C/C++のポインタの機能 — 参照渡しのような処理というポインタの解説記事があるのだが、 中身がなかなか香ばしい。コメントにもあるように、記事の間違いを探すということで ポイントを理解させるというネタには使えるのだろうか。

  • Forwarding...

  • 1