並び順

ブックマーク数

期間指定

  • から
  • まで

321 - 360 件 / 999件

新着順 人気順

C++言語の検索結果321 - 360 件 / 999件

  • 1分で実行できる?インストール不要、C言語向けGoogleTestサンプル for Linux - Qiita

    先にタイトルに誇大な表現があることを謝っておきます。。。 http://qiita.com/igayu/items/eaa63d017e0590504999 でC開発者向けのGoogleTestの良いところを述べたつもりですが、じゃあ次は実際に動かしてみようよ、って時の手ごろなサンプルを用意してみました。GoogleTest自体がサンプルコードも提供しているみたいですが、慣れてないとビルド方法とか、英語だから読む気しない、って人もいます。それくらい常識、勉強しなさい、と切り捨てると仕事は回りません。せっかくGoogleTest、便利そうだね、って思ってくれた人にはもう少し背中を押してあげます。 ここで紹介するサンプルは以下の前提で書いています。 ・C言語開発者向けということでC++の文法には極力触れない ・Linux gccベース(私はWindows7にvmwareでCentOS6.7を仮

      1分で実行できる?インストール不要、C言語向けGoogleTestサンプル for Linux - Qiita
    • C言語プログラムの構造とほんの少し解釈

      Kernel/VM探検隊online part3 発表資料

        C言語プログラムの構造とほんの少し解釈
      • プログラミングでつまずく理由 原因はC言語のあの記法か

        初心者がプログラミングでまず学ぶ必要があるのが変数と値だ。そのときには、「=」の意味に注意する必要がある。

          プログラミングでつまずく理由 原因はC言語のあの記法か
        • イマドキの C 言語の if 文では dangling(ぶら下がり・ぶらぶら・宙ぶらりん) else 問題は発生しない

          C_if.md イマドキの C 言語の if 文では dangling(ぶら下がり・ぶらぶら・宙ぶらりん) else 問題は発生しない 2022/12/17 更新 この記事は、自作OS Advent Calendar 2021の 12/02 の記事として書かれました。 注意:この記事のタイトルと内容は間違っています(2022/12/17 追記) もし、「elseは,構文規則で許されるifのうち,そのelseの前で最も近い位置にあるifと結び付く。」という規定が なかったら、C89/C90 等では dangling else 問題が生じますが、C99 以降の「選択文はブロックとする。各副文も ブロックとする。」という規定があれば、dangling else 問題が生じないはずだという思い込みを記事として書いたものです。 自作の C コンパイラでは、バックトラックのある正規右辺文法を用いた再帰

            イマドキの C 言語の if 文では dangling(ぶら下がり・ぶらぶら・宙ぶらりん) else 問題は発生しない
          • 三菱電機 FA シーケンサ MELSEC 製品特長 MELSEC iQ-Rシリーズ CPU C言語コントローラ/C言語インテリジェント機能

            C言語コントローラユニット、C言語インテリジェント機能ユニットはシーケンサ上でC言語プログラムを実行できる、長期安定供給、高信頼、高性能、フレキシブルなオープンプラットフォームです。 C/C++言語プログラムでMELSEC iQ-Rシリーズのユニット管理や入出力制御を行いながら、ラダープログラムでは実現できない高速な演算処理を実行できます。

            • SendMessage関数(Win32API)(C言語) - 超初心者向けプログラミング入門

              前ページではボタンの作成について説明しました。 ボタンのスタイルについても説明しましたが、もっと詳細なカスタマイズを行うにはSendMessage関数を使用します。 LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); ウィンドウhWndのウィンドウプロシージャにメッセージMsgを送信する。 追加のデータとしてwParam、lParamを指定できる。 戻り値は送信するメッセージにより異なる。 SendMessage関数はコントロール類の設定に限らず、Windows APIでは頻繁に使用される関数です。 引数はウィンドウプロシージャと同じで、この関数は指定のウィンドウハンドルのウィンドウプロシージャに任意のメッセージを送信(=実行)することができます。 通常のウィンドウのほか、コントロールもウィンド

              • C言語によるはじめてのアルゴリズム入門 改訂第5版

                河西朝雄(かさいあさお) 山梨大学工学部電子工学科卒(1974年)。長野県岡谷工業高等学校情報技術科教諭,長野県松本工業高等学校電子工業科教諭を経て,現在は「カサイ.ソフトウエアラボ」代表。 主な著書:「入門ソフトウエアシリーズC言語,MS-DOS,BASIC,構造化BASIC,アセンブリ言語,C++」「やさしいホームページの作り方シリーズHTML,JavaScript,HTML機能引きテクニック編,ホームページのすべてが分かる事典,iモード対応HTMLとCGI,iモード対応Javaで作るiアプリ」「チュートリアル式言語入門VisualBasic.NET」「はじめてのVisualC#.NET」「C言語用語辞典」ほか(以上ナツメ社)「構造化BASIC」「C言語によるはじめてのアルゴリズム入門」「Javaによるはじめてのアルゴリズム入門」「VisualBasicによるはじめてのアルゴリズム入門

                  C言語によるはじめてのアルゴリズム入門 改訂第5版
                • C言語のunsignedint型で、オーバーフローした時はmod(2^32)されたものが出てきますか? - 誤解があるようですが、C... - Yahoo!知恵袋

                  誤解があるようですが、C言語では unsigned 型はオーバーフローしません。 unsigned int 型では、UINT_MAX を超える値になる場合は UINT_MAX + 1 で割った余りになると規定されています。 0 より小さい値の場合は UINT_MAX + 1 を足し続けて 0 ~ UINT_MAX + 1 の間に入った値として規定されています。 なお UINT_MAX は #include <limits.h> で使用可能です。

                    C言語のunsignedint型で、オーバーフローした時はmod(2^32)されたものが出てきますか? - 誤解があるようですが、C... - Yahoo!知恵袋
                  • プログラマの英語(C言語編)最初の80単語(例) - Qiita

                    プログラマの数学 プログラマの数学という本があるらしい。 プログラマに必要な数学は引き算だけだと思っている。 だからまだ読んでいない。 計算機に数学は必要だと思っている。 だからプログラマには数学は必要ないというのが持論。 <この項は書きかけです。順次追記します。> プログラマの英語 それはともかく、「プログラマの英語」について考えてみる。 前提としてプログラマは自然言語が話せる必要はないと思っている。自然言語の日本語も、自然言語の英語も話す必要はないと思っている。 プログラミングには、英単語に基づいた定義がいろいろある。そこで、プログラミング言語によって、知っていると便利な英単語はあるかもしれない。 国際英語 情報技術の国際会議に参加して、 フランス人はフランス語発音の英語を話す、 ドイツ人はドイツ語発音の英語を話す、 スペイン人はスペイン語発音の英語を話す、 イタリア人はイタリア語発音

                      プログラマの英語(C言語編)最初の80単語(例) - Qiita
                    • C言語 staticを変数と関数に付ける価値【保護の仕組みを解説】

                      こんにちは、ナナです。 「static」とは皆さんの作るプログラムを、より安全にするための機能です。 もちろん、使わなくてもプログラミングはできますが、大規模システムになるほど安全性を高めることが重要になるのです。 「安全にするための機能」とはいったい何なのか、それを示します。 本記事では次の悩みを解消する内容となっています。

                        C言語 staticを変数と関数に付ける価値【保護の仕組みを解説】
                      • 将来性の良い、安定収入のC言語!初心者でも簡単に学べるC言語の良さを掘り下げる

                        #include <stdio.h> C言語を勉強した時に1番最初に覚えました。 今思えばこれがC言語の始まりだったなって思います。 そんなC言語ですが、一昔前までは古い言語だと言われていました。 今の流行りはPHPやJavaScriptなどです。でも玄人はC言語なんですよね。 それにまだまだ需要があるC言語。 求人でもC言語を使える人は意外と給料が高めに設定されています。 今の人はC言語なんてって思うかもしれませんが、私の頃は基本の基本がC言語でした。 今回はそんなC言語をしっかりフィーチャーして色々できるんだぞという事を紹介したいと思います。 C言語とはなにか?C言語というのは、1972年に開発された歴史あるプログラミング言語です! C言語は、プログラミングの基礎知識から、実用できる応用力を学ぶことが出来ます。 そしてなんといっても、C言語は実行速度が速いです! その理由として上げられ

                          将来性の良い、安定収入のC言語!初心者でも簡単に学べるC言語の良さを掘り下げる
                        • C言語 (GCC) で配列の配置先を切り替えて実行可能にする - Qiita

                          このようにデータへのポインタを関数ポインタに変換するのはC言語の規格には違反するみたいだけど、目をつぶってね… #include <stdio.h> unsigned char program[] = {0x89, 0xf8, 0x01, 0xf0, 0xc3}; int main(void) { int (*add)(int, int) = (void*)program; printf("%d\n", add(40, 2)); return 0; } しかし、これを実行するとエラーになってしまった。 yUZ7Mw - Online C Compiler & Debugging Tool - Ideone.com これは、メモリ上でデータを格納する領域とプログラムを格納する領域が分かれており、データを格納する領域にあるデータをプログラムとして実行しようとするとエラーとして落とす設定になって

                            C言語 (GCC) で配列の配置先を切り替えて実行可能にする - Qiita
                          • C言語などのコンパイラはどのようにしてコンパイルされたのですか?

                            GCCについて GCC登場以前からCコンパイラーは存在していました。そのため、GCCは既存のCコンパイラーを使ってコンパイルされることを前提に設計されています。例えばビルド方法も stage1: 既存のCコンパイラーでGCCをビルドする 既存のCコンパイラーがコード生成したGCC stage2: stage1のGCCでGCCをビルドする 既存のCコンパイラーがコード生成したGCCがコード生成したGCC stage3: stage2のGCCでGCCをビルドする 完全にGCCのみでコード生成したGCC と3回ビルドを行い、最終的にstage3のGCCが使われます。 クロスコンパイル そうはいっても既存のCコンパイラーが存在しない環境ではどう作るのかというと、クロスコンパイルという技術があります。別のプラットフォームのCコンパイラーでビルドを行いコード生成します。 ホスト: コンパイラーが動作す

                              C言語などのコンパイラはどのようにしてコンパイルされたのですか?
                            • SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 | 書籍・刊行物 | IPA 独立行政法人 情報処理推進機構

                              トップページ 書籍・刊行物 SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 編集・発行元 独立行政法人情報処理推進機構(IPA) 技術本部 ソフトウェア高信頼化センター(SEC) 発行日 2016年10月1日 サイズ B5変形判 ページ数 208ページ ISBN 978-4-905318-47-7 定価 1,528円(税込) 書籍概要 概要 本書は、組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 1.0 (ESCR C++ Ver. 1.0) の改訂版で、C++言語を用いて開発されるソースコードの品質をより良いもの

                                SEC BOOKS:ESCR C++ Ver. 2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C++言語版] Ver. 2.0 | 書籍・刊行物 | IPA 独立行政法人 情報処理推進機構
                              • C言語でバブルソートの昇順ができた件 - Qiita

                                注意 ・AtCoderの A - Task Scheduling Problem のネタバレあり。 ・読みにくいから頭の中が整理出来次第更新していく。 ACしたコード #include <stdio.h> int main(void) { int a123[4]; for (int i = 0; i < 3; i++) { scanf("%d",&a123[i]); // printf("%d ",a123[i]); } // printf("\n"); //ここから昇順ソート int i; int j; int tmp = 0; for (i = 0; i < 3; i++) { for (j = i + 1; j < 3; j++) { if (a123[i] > a123[j]) { tmp = a123[i]; a123[i] = a123[j]; a123[j] = tmp; }

                                  C言語でバブルソートの昇順ができた件 - Qiita
                                • C言語レベルのスピードとPythonの使いやすさを両立したプログラミング言語「Mojo」が発表 | TEXAL

                                  AIスタートアップのModularは、Pythonの使いやすさとC言語の速さの両立を目指したプログラミング言語「Mojo」を発表した。 Mojoは、一般的なPythonやC言語との高い互換性を誇り、AI技術の開発を加速させ、モジュール方式で拡張し続けることを可能にするとともに、現在GPUなどの加速ハードウェアに依存しているAIのプログラミング性を高めることが期待できると言う。また、Intel、Arm、NVIDIA、AMDなどの提供するアクセラレーションハードウェアデバイスと互換性がある。 Modularによると、Mojoは、ハードウェアアクセラレーションによりマンデルブロのような数値計算アルゴリズムを実行した場合、Pythonの35,000倍の速度が得られるといい、AIの実行を高速化し、ユーザーがよりリアルタイムにAIと対話できるようになるという。 一方、PythonやCとの互換性が強化さ

                                    C言語レベルのスピードとPythonの使いやすさを両立したプログラミング言語「Mojo」が発表 | TEXAL
                                  • アセンブリ(NASM)で関数作ってC言語で呼ぶ - Qiita

                                    環境 OS : Ubuntu 18.04 アセンブラ : NASM 2.13.02 リンカ : ld 2.30 ソースコード global _nasm_hello global _nasm_exit [section .data] string1: db "Hello", 0x0a length1: equ $ - string1 [section .text] _nasm_hello: mov rax, 1 mov rdi, 1 mov rsi, string1 mov rdx, length1 syscall ret _nasm_exit: mov rax, 60 mov rdi, 0 syscall

                                      アセンブリ(NASM)で関数作ってC言語で呼ぶ - Qiita
                                    • PythonにできてC言語にできないことはありますか?

                                      回答 (4件中の1件目) pythonにできてCにできないことはないです。機械語にできてCにできないことはないです。アセンブリにできてCにできないことはないです。 がしかし、現実的に1企業のチームが納期やコストの制約の中でできるか?できないか?という話で言えば、c言語にはできないことだらけです。 基本的にc言語が適する性能に制約がある環境の中以外では、c言語は何もできないと言っていいです。機械学習やAIを効率的に簡単に構築できないです。すぐつかえるwebサーバーを立ててAPIを構築したりすることはできないです。 そういったライブラリはありますが、チームとしてビジネスとして開発すると...

                                        PythonにできてC言語にできないことはありますか?
                                      • "Clockwise/Spiral Rule''を使ってC言語の複雑な宣言を理解する - Qiita

                                        はじめに この記事を書いたきっかけ こんにちは,私は社会人2年目の組み込みエンジニアの下積みです.さほど詳しくなかったC言語を本格的に業務で使うようになって約9ヶ月,C言語って宣言が難しいな〜と思うようになりました.特に関数ポインタやダブルポインタ,その配列…などと考えるといくらでも複雑になります.例えば以下の画像のようなC言語の宣言に関する有名なジョークがありますね. これは勿論行き過ぎですが,多少複雑な宣言でも軽々と読めたらな,と調べる中で知ったのが表題の"Clockwise / Spiral Rule"です.これを使うと複雑な宣言でも結構簡単に読めてしまいます. しかしながら,調べてみると案外日本語で解説された記事が無いんですね.そこで折角面白いルールなので記事にして投稿しようと思った次第です. (日本語記事が周知の事実だから?それとも,あまり推奨されないような方法だから…?) この

                                          "Clockwise/Spiral Rule''を使ってC言語の複雑な宣言を理解する - Qiita
                                        • 記号の一覧 | Programming Place Plus C言語編

                                          C言語のソースコードに現れるさまざまな記号が、どういう意味であるのかを一覧できるようにしました。 C++ の記号の一覧がこちらのページにあります。

                                            記号の一覧 | Programming Place Plus C言語編
                                          • 【C】初めてのC言語(23. 条件付きコンパイル) - Qiita

                                            はじめに これまでの学習に続いて、今回はdefineとifdef~endifを用いた条件付きコンパイルについて学んだ結果をまとめてみました。 学習環境 今回はpaiza.ioのC言語のエディタを使いました。 defineによるマクロ処理(復習) マクロ処理の概要 defineによるマクロ処理は、「ソースコード内のある文字列を別の文字列に置換する」という機能を持っています。 この置換処理のことを「展開」と呼ぶそうです。 以下のコードでは、プリプロセッサによって「PIが3.1415に置き換えられる」という処理が行われます。 #include <stdio.h> #define PI 3.1415 int main(void){ int r = 2; printf("半径%dの円の面積:%f\n", r, r * r * PI); return 0; } マクロ処理の副作用 型や構文のチェックが

                                              【C】初めてのC言語(23. 条件付きコンパイル) - Qiita
                                            • C言語の基礎を体系的に学びたいときの定番入門書が内容を刷新して登場、『C言語 新版』

                                              本書は2000年刊行の初版、そして2009年刊行の改訂版から読まれ続けてきたC言語入門書の最新版です。 これからC言語を勉強したい人にとって、何から学べばいいのかわからないケースは少なくありません。本書ではC言語の基本文法や独自の機能を体系的にまとめているので、順に読み進めれば重要な知識を漏れなく学ぶことができます。 また、シンプルなサンプルプログラムを通して、C言語のプログラムがどのように動くのかを確認していきます。初学者がつまずきやすいポイントは、これまで多くの学生にプログラミングを教えてきた著者の三谷純さんが重点的にコメントを入れるなど、理解の深まるサポートが充実しています。 初めてC言語に触れる方はもちろん、C言語を基礎からしっかり学び直したいエンジニアにもおすすめの1冊です。 目次 第1章 C言語に触れる 1-1 C言語に触れる 1-2 C言語のプログラム構成 1-3 プログラム

                                                C言語の基礎を体系的に学びたいときの定番入門書が内容を刷新して登場、『C言語 新版』
                                              • C言語の変数について

                                                変数とはデータの記憶領域に名前をつけたものです。C言語の変数について、変数宣言の仕方、名前のつけ方の制限について解説しています。 C言語において、変数(へんすう、variable)とは、処理を行うために必要なデータを記憶しておく領域に名前をつけたものを意味します。名前がついているので、たくさんの種類のデータを扱う場合でも、簡単に区別がつきます。 変数を使用するためには変数の宣言をする必要があります。変数の宣言で最も簡単な方法は、変数の型と変数名を記述するような以下の書き方です。

                                                • C言語で競技プログラミング(AtCoder)に挑む場合の入力・変換まとめ - Qiita

                                                  はじめに 本記事では,C言語で競技プログラミング(主にAtCoder)に挑む場合の入力処理の方法についてまとめます. さらに,入力したデータを変換したい(例えば,文字列→数字,など)場合の処理についてもまとめます. もし,もっといい方法を知っている,とか,この入力の場合はどうすればいいですか,とかあればコメント等ください. (出力はprintfするだけなので,まとめませんでした…) 目次 入力 1行1列の数値の場合 1行複数列の数値の場合 1行1列の文字の場合 1行の文字列の場合 複数行の場合 変換 文字列の長さを調べる 文字から数字への変換

                                                    C言語で競技プログラミング(AtCoder)に挑む場合の入力・変換まとめ - Qiita
                                                  • 文字の扱い方 - 苦しんで覚えるC言語

                                                    これまで、プログラム中で何回も文字列を扱ってきたのですが、 なぜか、文字列を記憶する変数は1度も説明したことがありませんでした。 その理由は簡単です。C言語には文字列を記憶する変数がないからです。 文字列用の変数がないのは、文字列が特殊な性質を持つためです。 文字列は、何文字になるのかが事前に予測できません。 5文字程度で済むこともあれば、何千文字という文字数になることもあります。 この様に、場合によって必要とされるメモリのサイズが異なってくるのです。 この様な事情があるため、C言語には文字列用の変数がありません。 C言語以外のプログラミング言語では、次のような構造で文字列変数を用意しています。 1、メモリを固定的に確保(メモリ消費量のムダが多くなるが、高速で扱いやすい) 2、メモリを可変的に確保(メモリ消費量を減らせるが、低速。) このように、どちらも一長一短となっており、向き不向きがあ

                                                      文字の扱い方 - 苦しんで覚えるC言語
                                                    • C言語開発に最適なエディタ/IDEはこれだ!目的別おすすめ3選! | 侍エンジニアブログ

                                                      おすすめのテキストエディタやIDEをご紹介していく前に、そもそもそれ自体がわからない方のために概要をご説明していきます。 テキストエディタとは テキストエディタとは、テキストデータを保存しているファイルを編集するためのアプリケーションソフトのことである。単にエディタとも呼ばれる。 Weblio辞書 テキストエディタとはその名の通り、テキスト(文章)を編集するためのアプリケーションです。プログラミングでは、プログラム(コンピュータへの命令)をテキストで書いて、実行します。 ですので、プログラマーにとってのテキストエディタ選びは、「プログラマー人生が変わる」ほどの選択になります。 IDE(統合開発環境)とは? IDEとは、ソフトウェア開発に必要なソフトウェアを一つに組み合わせ、同じ操作画面から統一的な操作法で利用できるようにしたソフトウェアパッケージ。一般的にはコードエディタやコンパイラ、リン

                                                        C言語開発に最適なエディタ/IDEはこれだ!目的別おすすめ3選! | 侍エンジニアブログ
                                                      • C言語026 ポインタ配列 : プログラミング指南 - Code Knowledge

                                                        プログラミング指南 - Code Knowledge ゲーム制作に関するプログラミング等を主に書き溜めていきます。ただ、どちらかと言えば日記的な書き方が続くと思いますが、そこは温かい目で見て頂ければ。あと、ちょっとしたサンプルやツールのダウンロードも出来るようにしておきます。

                                                          C言語026 ポインタ配列 : プログラミング指南 - Code Knowledge
                                                        • C言語入門 #01 なぜC言語なのか?

                                                          この記事にはアフェリエイト広告を含む場合があります。 記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。 プログラミング C言語入門 #01 なぜC言語なのか? こんにちは! IT 系企業出身の写真講師岡田です。 前回の動画では丸レフチャレンジをお送りしましたが、今回は何と写真と関係ないパソコン関係の話題をお届けしたいと思います。 プログラミングの話題 C 言語入門です 。 小学校でもプログラミング教育が必修化されるなどその重要性はますます増えています 。 小学校の新学習指導要領でもタイピングなどコンピューターの基本的な活用スキルのほか、コンピューターを動かすための考え方つまり論理的思考を身につけることが求められています。 プログラミングと言うとなんかものすごく難しいものを想像される方もいらっしゃると思いますが、決してそのようなものではございませんの

                                                            C言語入門 #01 なぜC言語なのか?
                                                          • Linuxでシステムコールの内部実行プロセスを、どうやって確認できますか? 例えばC言語のread()、write()でLinux内部でどういった関数が呼ばれ、カーネルモジュール内のファイルシステムがどの関数で処理しているのか、知りたいと思っています。 | mond

                                                            Linuxでシステムコールの内部実行プロセスを、どうやって確認できますか? 例えばC言語のread()、write()でLinux内部でどういった関数が呼ばれ、カーネルモジュール内のファイルシステムがどの関数で処理しているのか、知りたいと思っています。 Linux のプロセスが呼び出しているシステムコールを確認する方法としては strace(1) コマンドが幅広く知られています。 質問では read(2) や write(2) を呼び出したあとにどのような関数が呼ばれているのかを知りたい、ということのようですが strace(1) の -k オプションを用いることでスタックトレースを確認できますので、どんな共有ライブラリによってシステムコールの発行があったかなどを確認することができます。どこを経由してシステムコールを呼び出しているかが分かるので役立つと思います。 カーネルの中を追いかける方

                                                              Linuxでシステムコールの内部実行プロセスを、どうやって確認できますか? 例えばC言語のread()、write()でLinux内部でどういった関数が呼ばれ、カーネルモジュール内のファイルシステムがどの関数で処理しているのか、知りたいと思っています。 | mond
                                                            • 【C言語】Cコンパイラを作ってみた - Qiita

                                                              Cコンパイラを自作した話です。 コンパイラってどんなもの?ということから、コンパイラの仕組みを簡単に説明していきたいと思います。 コンパイラについて知るメリット コンパイラには情報学のすべてが詰め込まれています。 (eg.ソフトウェア、ハードウェア、機械語、オートマトン) そのため、コンパイラを作らなければ、始まらない!みたいな人もいるみたいです。。 普段プログラミングをしている際には、低レイヤの仕組みなどは意識することはないと思います。知らない人から見ればブラックボックス化していますね。 コンパイラを知ることで、その中身がどうなっているかを知ることができます。 箱があったら開けてみたいという精神で、好奇心で勉強していきましょう。 コンパイラとは? 人が書いたプログラムを機械がわかるようにする翻訳機のような役割を果たすものです。 今回作るものは、C言語のコンパイラで、C言語のソースコードか

                                                                【C言語】Cコンパイラを作ってみた - Qiita
                                                              • C言語とPHPの連携: パフォーマンスとWeb開発の融合 - Python転職初心者向けエンジニアリングブログ

                                                                こんにちは、プログラミング愛好者の皆さん。今回は、C言語とPHPを連携させ、高いパフォーマンスとWeb開発の柔軟性を両立させる方法について詳しく解説します。C言語の計算力とPHPのWebアプリケーション構築の強力な組み合わせを活かしましょう。 1. C言語の関数をPHPから呼び出す 最初に、C言語で書かれた関数をPHPから呼び出す例を見てみましょう。この方法では、PHPのffi拡張モジュールを使用して、C言語の関数を呼び出します。 C言語のコード (example.c) #include <stdio.h> void helloFromC() { printf("Hello from C!\n"); } PHPのコード (index.php) <?php // C言語のDLLをロード $ffi = FFI::cdef('void helloFromC();', './example.so'

                                                                  C言語とPHPの連携: パフォーマンスとWeb開発の融合 - Python転職初心者向けエンジニアリングブログ
                                                                • 【C言語】剰余演算(%)の使いどころ

                                                                  今回は剰余演算の使いどころについて説明していきたいと思います。 C言語においては剰余演算は % 演算子により実行することが可能です。この剰余演算は学校で習った四則演算には含まれません。四則演算は下記の4つであり、C言語においてはそれぞれ +・-・*・/ の演算子で実行することが可能です。そして、これらは四則演算であるだけあって非常に多くの場面で利用することになります。 加算(足し算) 減算(引き算) 乗算(掛け算) 除算(割り算) で、前述の通り % で実行する剰余演算については四則演算には含まれません。そもそも学校の数学等の授業で余りを求める機会も少なかったのではないでしょうか? ですが、プログラミングにおいては剰余演算を利用する機会が非常に多いです。 では、実際にどんな場面で剰余演算を利用する機会があるのか?この「剰余演算の使いどころ」について説明していきたいと思います。

                                                                    【C言語】剰余演算(%)の使いどころ
                                                                  • 【C言語】数値型の早見表 | インフラエンジニアの技術LOG

                                                                    上記でそれぞれの型により、メモリ使用量は異なります。 メモリの大きさは以下のようになります。 char < short < long < int 設定例 実際の設定例は以下のようになります。 #include <stdio.h> main () { char age = 34;        //年齢 double height = 170.1;   //身長 float weight = 69.5;    //体重 printf("年齢:%d歳\n", age); printf("身長:%fcm\n", height); printf("体重:%fkg\n", weight); } コンパイルを実施します。 # gcc test.c -o test コンパイルがうまくいき、実行すれば以下のように出力されます。 # ./test 年齢:34歳 身長:170.100000cm 体重:69.5

                                                                      【C言語】数値型の早見表 | インフラエンジニアの技術LOG
                                                                    • C言語のremove()とunlink()の違い

                                                                      C言語に存在する、remove()とunlink()の違い。 別に『ファイルを削除する』という目的が正常に行われれば手段は問わないし理由なんかどうでもいい、ということであれば、たぶんここに書いていることもどうでもいいと思います。プロジェクトメンバーにこの質問を投げかけたら、そんなことどうでもいい、と軽くあしらわれましたし。 でも、結果が同じ『ファイルを削除する』だけの処理で、なんで2種類の方法が存在しているのか、気になりません?自分は気になりました。 気になったら検索 さっそくUNIXにログインし、manページを表示してみる。コマンドはそれぞれ以下の通り。 % man remove % man unlink どちらも英語びっしりで表示されて、よくわかりませんでした(笑) 英語がわからなければ意味もわからないので、ネット上にmanページを日本語に翻訳してくれている神のようなサイト「JM Pr

                                                                        C言語のremove()とunlink()の違い
                                                                      • 【C言語入門】define(マクロ)の使い方(関数や条件付きマクロも解説) | 侍エンジニアブログ

                                                                        あなたはdefineを使ってますか? defineはC言語で自ら定義した文字列を定数や式で置き換える場合に使用します。 この置き換える処理のことをマクロ処理といいます。定数や式を自ら定義しその定義をコードの中でたくさん使う場合には、defineを使ってマクロ処理をしておくと便利です。のちのちに定義を変更したい場合が発生しても、defineを使って定義した箇所を変更するだけで済みます。 この記事ではdefine(マクロ処理)についての基本的なことから、文字列を値や式に置換したり、if definedで条件付きマクロを使うなど応用的な使い方の内容についても解説していきます。 define(マクロ)とは defineとはプリプロセッサへの指示内容のひとつです。ブリプロセッサとは、コンパイル前に処理を行うプログラムのことです。 コンパイル時の前処理として、マクロ名で指定した文字列を定数や式で置き換

                                                                          【C言語入門】define(マクロ)の使い方(関数や条件付きマクロも解説) | 侍エンジニアブログ
                                                                        • C言語でYUV動画を読み書き - 暇な女子高専生のブログ

                                                                          1ヶ月分ぐらい定点でインターバル撮影したんだけど, 夜の間真っ暗なところをカットしたかったのでやった. ちなみに最初はPythonでやったんだけど,あまりにも遅かったのでCにした. YUV テレビの黄色コンポジット端子で扱われる色空間のことで 輝度信号Yと2つの色差信号からなる. もともと白黒放送が輝度信号のみであったため, カラー放送移行時に後方互換性のことを考えて生まれたものらしい. ffmpegやlivavで動画の出力にYUV形式を選ぶと, フレームごとに切り出して,YUVをひたすら書き出してくれる. 結構単純なので,プログラムからでも簡単に扱える. YUV動画のパースもRGBへの変換も英語版Wikipediaにすべて書かれている. (ffmpegやlivavの出力するYUVはY'UV420p形式) 参考: http://en.wikipedia.org/wiki/YUV セットアッ

                                                                            C言語でYUV動画を読み書き - 暇な女子高専生のブログ
                                                                          • 【プログラミング初心者のためのC言語の概要】難易度や特徴・学習方法などを紹介します

                                                                            C言語は大学や専門学校だけでなく、大多数の企業が入社研修として採用しています。 Javaなど現在多くのプログラミング言語がオブジェクト指向です。 オブジェクト指向とは「プログラミング技法」の一つ。 プログラムを「ただ上から書く」だけではなく

                                                                            • 20年物のC言語で作られたシステムのテスト工程を改善しようとした話 - Qiita

                                                                              はじめに ちょっと前に20年物のC言語で作られたシステムのテストを色々改善しようとしてみたので、この時に得たちょっとした知見を書いていこうと思います。 ※注意 記事を書くために自分のパソコンで当時を思い出しながら環境を作っているので、実際、実務でやった環境やバージョンとは違います。 また、この記事にはいくつかコードがでてきますが、すべて記事を書くために考えた疑似的な例にすぎません。 単体テスト用のテストコードの作成 20年も動いているシステムだと、もはや誰にも意味はわからんが、既存の挙動を変えてはいけない箇所がいくつもあります。 そういう箇所に手を入れざるを得ないときに、有効な方法として以下のような方法があります。 まず、既存のコードに対するテストコードを記載します。そして全て合格することを確認してから、少しづつ機能を拡張していきます。 これにより、新規機能追加が既存の機能を壊していないこ

                                                                                20年物のC言語で作られたシステムのテスト工程を改善しようとした話 - Qiita
                                                                              • 【開発環境ほか 1-9】C/C++言語で、64bit環境上で動作するプログラムを作る際の技術的な注意点はありますか? | 図研エルミック

                                                                                【開発環境ほか 1-9】C/C++言語で、64bit環境上で動作するプログラムを作る際の技術的な注意点はありますか? 注意が必要なケース 一般的な変数の使い方をしている場合は問題になることはありませんが、以下のようなケースでは問題が発生する可能性があります。 通信プロトコルの送受信データやデバイスのレジスタ・アクセス等、データサイズ/位置が厳密に定義されているケースにおいてint/long等のデータモデルによってサイズが変わる型を利用した構造体定義を利用している場合 ポインタ演算をポインタ型以外の変数(int等)を利用してオフセット計算している場合 size_t型などで指定するC標準ライブラリ引数/返却値にint等を利用している場合 64bitバイナリの実行に対応したOS環境 64bitバイナリの実行に対応したOS環境は、一般的には64bitのWindows/Linux等があげられ、組込み

                                                                                • 【NES】C言語でファミコンソフトをコンパイルして通す - 歩いたら休め

                                                                                  ゲームボーイでとりあえずキャラクターを動かす程度の実装はできるようになったのですが、ファミコンのほうが面白いんじゃないかと思って調べてみました。将来的には自作のファミコンプログラムでVJやるとかできたらかっこいいです。 こちらの記事によると、cc65というコンパイラ(?)を使えばC言語でソフトを作れるそうです。 blog.akiym.com というわけで、↑の引用元であるこちらのサイトを参考にしつつ、とりあえずコンパイルを通してみます。 OSXへのコンパイラのインストールは brew install cc65 で済んでしまいました。 www34.atwiki.jp #include <conio.h> int main(void) { clrscr(); cprintf("hello cc65"); while(1); return 0; } Makefileはこんな風に記述しています。あ

                                                                                    【NES】C言語でファミコンソフトをコンパイルして通す - 歩いたら休め