タグ

C言語に関するchess-newsのブックマーク (16)

  • 例え話をしないC言語のポインタの説明 | 右や左の旦那様

    まえおき 巷では「プログラマーになりたい人に初学者にとって、ポインタという考え方がわけわかめ」という話がよくあります。 そこでいろいろな人が「ポインタは住所だ」とか「変数がハコで」とか手を変え品を変え分かりやすいように説明してくれています。 それでもなお「ポインタがわかりづらい」という人が後を絶ちません。 もういっそのこと、例え話をやめてド直球で攻めたらいいんじゃないでしょうか。 Hello, Worldより簡単に サンプルコード 以下のコードを考えます。 void main() { int a; int b; int c; a = 1; b = 2; c = a + b; } 「#include <stdio.h>」なんていう謎のオマジナイはこの際ナシです。あんなもの無くたってC言語は成り立ちます。 まぁ見ての通り、どこにも何も出力されませんが。 このプログラムは、「c = a + b」

    例え話をしないC言語のポインタの説明 | 右や左の旦那様
  • C言語で学ぶモダンなソケットAPI入門 - Qiita

    C言語で学ぶソケットAPI入門 第1回 サーバ編から始まった時は、とりあえずIPv4限定のレガシーなAPIからはじめて、徐々に発展させていこうという目論見でしたが、今後は何をするにしてもモダンなAPIを使ってソケットプログラミングの話を進めたいところです。 そこで今回はクライアントから受け取った文字列を返すエコーサーバプログラムを、モダンなAPIを使って書き直すことを通じてその詳細に迫ります。ソケットプログラミングにおいてモダンなAPIがレガシーな例と比べて優れているのは、処理速度的な点ではなく、現在も未来も含めた様々なケースに柔軟に対応できるという点です。 レガシーな例ではIPv4しか対応できないソケットを作成することしかできませんでしたが、モダンなAPIを使った例では、IPv4とIPv6両方のソケットを用意して届いたデータパケットによって処理を分岐するという、柔軟性のある機能を実装する

    C言語で学ぶモダンなソケットAPI入門 - Qiita
  • 初心者向け・C言語の練習問題をたくさん解ける学習サイトと本8選 - paiza times

    Photo by frontriver こんにちは。谷口です。 先日paizaが行ったアンケートで、「好きなプログラミング言語」の3位(※学生2位・社会人4位)にC言語がランクインしました。 paiza.hatenablog.com 学生人気が高いのは、情報系学部の授業でプログラミングの基礎として習うことが多いのも理由の一つかもしれませんね。 C言語は各実行環境のネイティブの機械語にコンパイルされて、CPUが直接コードを実行するため、処理速度が非常に高速な言語です。業務システムだけでなくOSやハードウェアの開発にも向いており、WindowsLinuxといったOSの開発にも使われています。 paizaにも「もっとC言語の勉強がしたい」「C言語でいろいろな問題が解きたい」といった声が多く寄せられていますので、今回はC言語の練習問題がたくさん解ける学習コンテンツを8件ご紹介します。 【目次】

    初心者向け・C言語の練習問題をたくさん解ける学習サイトと本8選 - paiza times
  • 私はC言語を知らない | POSTD

    (注:2017/04/27、いただいたフィードバックを元に翻訳を修正いたしました。) この記事では、皆さん(特にC言語のプログラマ)に「自分はCを分かっていなかった」と気付いてもらうことを目標にしています。 Cの落とし穴は、思っているよりもずっと身近なところにあります。ちょっとしたコードにも 未定義の動作 が潜んでいることを以下で示しましょう。 この記事はQ&A形式になっており、それぞれの例題は独立したソースコードとして扱ってください。 1. Q: これは正しいコードでしょうか? (変数の二重定義エラーが発生するでしょうか。上述の通り、これは独立したソースファイルであり、関数体や複合ステートメントの一部ではありません) 解答 A: 正しいコードです。1行目は仮定義であり、2行目でコンパイラが処理した後に “定義” になります。 2. extern void bar(void); void

    私はC言語を知らない | POSTD
  • 【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め

    Pythonプログラマーというか、元々Python(ときどきR、C言語)で数値シミュレーションをしていた学生が、就職してRubyでWeb開発を行うにあたって勉強したことを書き連ねていくだけの記事です。 もし自分と同じような立場の人(これから後輩としてもどんどん増えていくかも!)がいたら、「ここを押さえておけばRubyは問題なく書けるよ」と教えられるように書いておきます。というのも、レビューを行っていた先輩とのプログラミングのスキルとの開きがあり、先輩も私も「どこが分かってないのか説明できない」状態になってしまってお互いに困ってしまった経験があるからです。 RubyPythonはよく似ているのですが、思想や見た目で違う部分が多く、片方を勉強するともう片方の理解も深まります。 たまに2ちゃんねるのオカルト板である「見たことある世界によく似た異世界に迷い込んだ」みたいな感覚で、なかなか面白い経

    【Ruby】PythonプログラマーがRubyを触って感じたこと - 歩いたら休め
  • Raspberry Pi GPIO入出力のサンプル(Python, C言語, shellスクリプト) (r271-635)

    05 January 2013 Raspberry Pi GPIO入出力のサンプル(Python, C言語, shellスクリプト) Raspberry PiのGPIO端子から入出力できるか、試してみる。RPi Low-level peripheralsを参考にした。 ■ Python Python用モジュールが既にインストールされているか確認する。 $ sudo apt-cache --names-only search gpio python-rpi.gpio - Python GPIO module for Raspberry Pi python3-rpi.gpio - Python 3 GPIO module for Raspberry Pi $ sudo dpkg -l | grep -e "python.*gpio" ii python-rpi.gpio 0.4.1a-1 ar

  • 2016年、C言語はどう書くべきか (前編) | POSTD

    (訳注:2016/3/2、いただいた翻訳フィードバックをもとに記事を修正いたしました。) (訳注:著者のMattより、「文中で明言はしていないが、この記事の内容はx86-64 Unix/Linux/POSIXでアプリケーションをプログラミングする場合にフォーカスしている。他のプログラミング領域では、対象とするシステムに応じた(例: 8-bitの組み込みシステム、10年前のコンパイラ、多くの異なるCPUアーキテクチャで動く必要のあるアプリケーション、Win/Linuxでのビルド互換性など)特有のアドバイスが必要」との補足を頂いております。) 以下の文章は2015年の始めに書いたドラフトで、今まで公開していませんでした。私のドラフト用フォルダの中で誰の目も引かなかったため、大部分が書いた時のままです。公開するにあたり、単純に2015年を2016年に変更しました。 必要な修正、改善、苦情があり

    2016年、C言語はどう書くべきか (前編) | POSTD
  • How to C (as of 2016)

    How to C in 2016 This is a draft I wrote in early 2015 and never got around to publishing. Here’s the mostly unpolished version because it wasn’t doing anybody any good sitting in my drafts folder. The simplest change was updating year 2015 to 2016 at publication time. (Update: Many people have submitted revisions, notes, and improvements. All contributions have been incorporated throughout the pa

  • さあ、C言語プログラミングを始めよう!

    さあ、C言語プログラミングを始めよう!:完全マスター! 組み込みC言語プログラミング(1)(1/2 ページ) これから組み込みシステムのプログラミングを学びたい人を対象に、C言語を使ったマイコン制御プログラムの“イロハ”を解説していきます。連載を通じ、組み込みシステム開発特有の“特別なC言語の使い方”をマスターしよう。 「C言語」は、組み込みシステム開発に適したプログラミング言語の1つとして知られています。C言語は、一般的なプログラミングでもなじみの深い開発言語ですが、実際に、C言語を使ってマイコンの制御プログラムなどを作ってみると、“普通のCプログラム”とは“違った使い方”をしなければなりません。 一般的なC言語の学習法としては、「printf」「scanf」などの標準関数を使ったプログラム開発が定番ですが、これらはあくまでもUNIXやWindowsなどの環境上でのアプリケーション開発

    さあ、C言語プログラミングを始めよう!
  • 機械制御のためのマイクロコンピュータ入門

    最近のマイクロコンピュータはとても使いやすくなったようです。以前(数十年前?)のように,暗号のようなアセンブラ語やマシン語を駆使してプログラムを作ることもなく,BASIC言語やC言語を使ってプログラムを作ることができます。パソコン(Windowsマシン)にライター(マイコンにプログラムを打ち込むための装置)をつなげれば,プログラムの書き込みや修正なども簡単にできます。 このページでは,作者が今までに開発してきたマイクロコンピュータを使った実験装置を紹介します。なお,作者はマイクロコンピュータを使いこなしているわけではありません。誤った使い方や能率の悪い使い方をしている場合も多々あるかと思いますが,ご了承ください。

  • Swift実行ファイルを逆アセンブルして、最適化具合を正確に把握する方法 - Qiita

    SwiftはOptimization Levelによって顕著にパフォーマンスに差が出ます。 参考: Apples to apples, Part II · Jesse Squires また、Dynamic Dispatchでの呼び出しもオーバーヘッドになります。 参考: Swiftのfinal・private・Whole Module Optimizationを理解しDynamic Dispatchを減らして、パフォーマンスを向上する - Qiita ドキュメントなど読み解けば「どういう記述をすればどうコンパイルされるか」は大体予測付きますが、やはり実際にその予測通りになっているかは確認しておきたい時があります。 特にロガーなどグローバルに呼び出されるものの場合、そういう確認大事だと思っています。 (この記事もロガーの検証が元々の目的で、そのために調べてまとめています。ロガーについても記事

    Swift実行ファイルを逆アセンブルして、最適化具合を正確に把握する方法 - Qiita
    chess-news
    chess-news 2015/07/20
     コンパイルハック
  • インテルがIoT戦略を発表、次世代FAシステムで三菱電機と協業 | 日経 xTECH(クロステック)

    写真●米インテルのリック・ドワイヤー セールス&マーケティング事業部副社長兼エンベデッドセールスグループ ゼネラルマネージャー インテルは2014年9月29日、都内で記者会見を開催し、IoT(Internet of Things)に関する戦略などを発表した。IoT端末用のプラットフォームである「Edison」を国内でも10月から出荷することや、次世代FA(ファクトリーオートメーション)システムの開発で三菱電機と協業することなどを明らかにしている。 Edisonは、米インテルが2014年9月9日(米国時間)に米国で出荷開始を発表した製品で、500MHz動作のデュアルコアAtomプロセッサに無線LAN/Bluetoothなどの通信機能を統合したSoC(システム・オン・チップ)を搭載する。米インテルのリック・ドワイヤー セールス&マーケティング事業部副社長兼エンベデッドセールスグループ ゼネラル

    インテルがIoT戦略を発表、次世代FAシステムで三菱電機と協業 | 日経 xTECH(クロステック)
  • ご注文は機械学習ですか? - kivantium活動日記

    先日書いたOpenCVでアニメ顔検出をやってみた - kivantium活動日記の続編です。アニメ顔を検出するところまではうまくいったので、今度はキャラの分類をやってみようと思います。環境はUbuntu 14.10です。 ひと目で、尋常でない検出器だと見抜いたよ まずは分類に使う学習用データを用意します。投稿から半年以上経つのにまだランキング上位に残っている驚異の動画ご注文はうさぎですか? 第1羽「ひと目で、尋常でないもふもふだと見抜いたよ」 アニメ/動画 - ニコニコ動画を使います。 動画のダウンロード Ubuntuならaptで入れられるnicovideo-dlというツールを使います。 sudo apt-get install nicovideo-dl nicovideo-dl www.nicovideo.jp/watch/1397552685その後avidemuxでOP部分だけの動画を

    ご注文は機械学習ですか? - kivantium活動日記
  • 組み込みソフトウェア業界というナゾの裏世界の話 - きしだのHatena

    ここまでのあらすじ 我々の住むソフトウェア業界は、SI、サービス・パッケージ、ユーザー企業という大小3つの大陸にわかれ、時々いさかいがありながらも平和に暮らしていた。 そして、我々の住む世界とは別に、同規模の技術者が暮らす、組み込み業界という世界の存在も知られていた。 組み込み業界は、存在はすることは確かなのだが技術者の姿は見えず、そのプロダクトの存在も、わかるものにしかわからないのであった。 我々は、組み込み業界と交信できる唯一の手段、C言語を使って、その世界の住人と交信するしかなかった。 しかしあるとき、FPGAという次元ホールをみつけたワカモノ達が、組み込み業界に迷い込んでしまう。ワカモノ達の前に立ちはだかる屈強な組み込み技術者。彼らの前にワカモノたちは、あるものは倒され、あるものは捕らわれ、そして、命からがら表の世界に逃れてきたワカモノも「べり・・・ろ・・ぐ・・・」というナゾの言葉

    組み込みソフトウェア業界というナゾの裏世界の話 - きしだのHatena
    chess-news
    chess-news 2014/03/16
    自分がメカ設計で隣の島が組み込みソフト屋さんなんだけど、ネットに情報が無いのでよくわからん。 最近は、arduinoがあるので手を出せそうな気がする。 というかarduino互換ソフトになって業界ぶっっこわれないかしら
  • Amazon.co.jp: Head First C ―頭とからだで覚えるCの基本: David Griffiths (著), Dawn Griffiths (著), 木下哲也 (翻訳), 中田秀基 (監修): 本

    Amazon.co.jp: Head First C ―頭とからだで覚えるCの基本: David Griffiths (著), Dawn Griffiths (著), 木下哲也 (翻訳), 中田秀基 (監修): 本
  • #define MUST_GET 1 /* - 書評 - Head First C */ : 404 Blog Not Found

    2013年04月12日19:00 カテゴリ書評/画評/品評Lightweight Languages #define MUST_GET 1 /* - 書評 - Head First C */ 出版社より献御礼。 Head First C David Griffiths・ Dawn Griffiths / 中田 秀基・ 木下 哲也訳 [原著Head First C] やってくれたのは、やはり結局 O'Reillyだったか。 404 Blog Not Found:(弘法も筆の誤り||まろび出た馬脚)? - 書評 - しろうとクマくんとC言語の授業 その意味で、今もってK&Rを超えるCというのは、「初心者」まで含めても今なお存在しないようだ。C99も出て久しいし、そろそろ出てもいいと思うのだが。 書「Head First C」は、今まで私が出会ったC言語に関するの中で最良の一冊。「入門」

    #define MUST_GET 1 /* - 書評 - Head First C */ : 404 Blog Not Found
  • 1