並び順

ブックマーク数

期間指定

  • から
  • まで

281 - 320 件 / 999件

新着順 人気順

C++言語の検索結果281 - 320 件 / 999件

  • C言語でpow関数を実装してみた。 - Qiita

    注意! ・以下のネタバレあり。 pow関数とは ・今回、実装するpow関数については以下の記事にまとめています。 ACしたコード && 解説 #include <stdio.h> int main(void){ //標準入力からaを受け取るのでint型でaを宣言する。 int a; //標準入力からaを受け取るのでint型でbを宣言する。 int b; //標準入力からaとbを受け取るので標準入力から値を受け取る。 scanf("%d%d",&a,&b); // printf("%d%d",a,b); //累乗は掛け算をしていくので初期値は1にする。 //初期値を0にすると0に掛け算をすることになるのでどんなに掛け算しても結果が0になる。 int sumA = 1; //aをb回掛け算することで冪乗の掛け算ができる。 for(int i = 0; i < b; i++){ sumA *=

      C言語でpow関数を実装してみた。 - Qiita
    • コンパイラ作成の試み その1「ハイクラスC言語」のリストを入力

      コンパイラを作ってみたくて「ハイクラスC言語」のリストを入力してみました昔からコンパイラの自作に憧れていまして、入手した書籍は十数冊になると思いますが、本をいくら読んでも(もちろん、完全に理解できるまで読み込めていないのですが)、コンパイラ(あるいはインタプリタ)の構造についてはおぼろげには理解できたような気がしても、実際のプログラムをどのように構成すればよいのかが良く分かりませんでした。 目標は6809用の整数型のコンパイラの自作なので、特に具体的なコード生成手法を知りたいのですが、何しろコンパイラの本というのは理論的な本が多くて、、、 今までに読んだ本で印象に残っている本を挙げると、 ・明解入門 コンパイラ・インタプリタ開発 (林晴比古 SoftBank社) 分かりやすかったのですが、変数の使える電卓プログラムまででめげました。 ・Go言語でつくるインタプリタ (Thorsten Ba

        コンパイラ作成の試み その1「ハイクラスC言語」のリストを入力
      • C++言語の基礎から応用まで網羅する、おすすめ書籍7選

        C++言語は、高速処理が求められるアプリケーションや組み込み系システムで頻繁に使われているプログラミング言語です。コンピュータの構造に立ち入った理解が求められるため、初めてプログラミング言語を学ぶ人にとっては、高いハードルを感じるかもしれません。しかし、一度理解してしまえば、プログラミングの本質のようなものが見えてくるのではないでしょうか。 C++言語の参考書を探す上では、そのレベルに応じたものを選択する必要があります。簡単な機能を実装するところから、高度な使い方もできるプログラミング言語であるので、多様な書籍が出版されてきました。はじめてプログラミングを学ぶ人の場合、入門書を実践した上で学習を深めていくのが望ましいでしょう。既にほかの言語を知っており、業務でC++を用いる場合は、実務に直結するものや、コードの質を高めるのに有用な技術書を選択するべきです。

          C++言語の基礎から応用まで網羅する、おすすめ書籍7選
        • sm20111330 - パソコンサンデー1988 3 13放送『C言語入門講座 X Cコンパイラ特集』

          Original NicoNico URL: http://nicovideo.jp/watch/sm20111330

            sm20111330 - パソコンサンデー1988 3 13放送『C言語入門講座 X Cコンパイラ特集』
          • 『Arduino』の『C-言語』には・・・ - Analogue-Synthesizerのブログ

            6809をArduinoで動かしている動画は、不自然です まず、『Arduino-C』では、文字列が扱えません また、『Arduino』のMemoryは小さく、Programによる『ブロック転送』も疑問符があります。 元々、『SD-Card』にDataなど書いて置いても、不自然な点が多いです 『6809』と言うCPUには、相対Address-Jump命令しか無く 無意味な、Monitor-Programは私は作りません いきなり、『BASIC』などから動き始めるのなら別ですが、 機械語Levelで、『6809』を動かすことは極めて難しいです 僕の目的は『MC-8』と言う、Sequencerなので、いきなりSequencerのProgramが動き始めます。 僕は、目的のMachineは、完成していますが 回路図を示した様に、簡単な回路ではありません パソコンとの接続にはUSB-PICを使いま

              『Arduino』の『C-言語』には・・・ - Analogue-Synthesizerのブログ
            • Amazon.co.jp: あなたの知らないC言語誕生の秘密: BCPL, B, FORTH, GAME, TL/1型のない古代言語の世界: 川俣晶: Digital Ebook Purchas

                Amazon.co.jp: あなたの知らないC言語誕生の秘密: BCPL, B, FORTH, GAME, TL/1型のない古代言語の世界: 川俣晶: Digital Ebook Purchas
              • C言語の学習ではポインタでよく躓くとのことですが何が難しいですか?

                回答 (13件中の1件目) 他の言語にはあまりない概念だからです。 [code]int *x; [/code]と書いても実際にint型の値をもった変数が作られるわけではないというのは他言語を先に勉強した人からすると混乱すると思います。また、 [code]int x; int *y = (int *)malloc(sizeof(int)); [/code]の違いも混乱するでしょう。大抵の言語では基本的にプリミティブ型以外の構造体などので変数は関数に参照渡しで渡されますが、Cではポインタを使わない限りは値渡しで関数内ではコピーになるため、関数内でメンバ変数の値を変えてもそれが元の構造体変...

                  C言語の学習ではポインタでよく躓くとのことですが何が難しいですか?
                • C言語のテストでスタブ関数を使うためのアイデア - Qiita

                  TL;DR teratilのこのスレをまとめたものです。 マクロのトークン連結演算子(##)を使って関数名にソースファイル上の行数を付加することで、定義されている既存関数が呼ばれないようにします。 背景 既存のソースに対してテストプログラムを書く必要があり、異常系の確認のために関数をスタブに置き換えたいという状況がありました。 オブジェクト指向的な言語ではDI(Dependency Injection)というデザインパターンとしてコード例も簡単に見つかりますが、C言語での書き方はすぐに見つけられず、しばらくハマってしまいましたので共有したいと思います。 特に下記のような状況では有用ではないかと思います。 既存ソースは変更できない 置き換えたい関数が内部関数として同じファイルから呼び出されている アイデアの概要 基本的なアイデアは、既存関数を別名に置き換え、テストプログラム中のスタブを呼び出

                    C言語のテストでスタブ関数を使うためのアイデア - Qiita
                  • C言語の未定義動作について調べてみた

                    はじめに Zigについてのメモ の Zig 言語のスローガンと概要 に「C で大量にある未定義動作を Zig ではかなり少なくしています(といってもちゃんと数えたわけではないですが)」と書いたのですが、その後ちゃんと数えてみました。 最終版ドラフトで未定義動作の個数を数えてみた ISO - ISO/IEC 9899:2018 - Information technology — Programming languages — C でPDFがCHF 198で販売されています(Google検索によると2022-07-17時点で28,077.01 円)。 が、この価格では私にはちょっと手が出ないので以下の2つの最終版ドラフトを参照しました (と書いたのですが、その後上記のPDFを買いました)。 C17 (C standard revision) - Wikipedia からリンクされている N2

                      C言語の未定義動作について調べてみた
                    • C言語でclock関数を使っても0にしかならないのはナゼ? – Acceliv

                      C言語でミリ秒単位までの時間計測にclock関数を使っている方は多いかと思います。 組んだプログラムの処理速度を計測するためにclock関数を使っている方も多いでしょう。 #include<stdio.h> #include<time.h> int main() { clock_t start,end,diff; start = clock(); //何らかの処理 end = clock(); diff = end - start; //clock_t型の正体ははlong型なので、%dではなく%loが正解 printf("処理時間は%loミリ秒です",diff); return 0; } clock関数を用いて処理時間を計測するのはこの方法で間違っていないのですが、間違っていないにもかかわらずend - startの計算結果が0になってしまうことがあります。 今回は、clock関数を使って

                        C言語でclock関数を使っても0にしかならないのはナゼ? – Acceliv
                      • 【テスト】ポストC言語をAPIクライアントで比較してみる - Qiita

                        コード github:cotoha_api 目的 ポストC言語の比較をしたい。 基準 処理速度や実行ファイルのサイズ、メモリ管理はこの際、置いておく。プログラマとして書きやすい言語はどれか。これを知りたい。 対象 golang rust nim vlang golang 令和のC言語と言っても過言でない、泥臭い言語規約 言語規約が古臭い。これは長所でもあり、短所でもあると思う。私は元組み込み屋で長らくアセンブラとC言語を使用してきた。その私でもgolangは使いやすく、すぐに馴染める。 func (c *Cotoha) post(url string, header map[string]string, param map[string]string) (result []byte, err error) { jsonData, err := json.Marshal(param) if

                          【テスト】ポストC言語をAPIクライアントで比較してみる - Qiita
                        • 素人がATmega328PにMPLAB X IDEとSNAPを使ってC言語でプログラミングする物語 /*コンパイルからVerifyまでの壁*/ - cuLo MOD Studio!

                          明けまして御目出度うございます。昨年はなんだかんだ忙しく更新は滞りまくり、PCオーディオコンプレッサもなかなか手が付けられず仕舞でした。現在は「2.54mmピッチをやめる」という選択をしたことによって回路図はほぼ出来上がりになりました。あとはPCBと部品の発注という段階です。cuLoの統合開発環境は何だかんだいって常時ビジー状態です。今年は心機一転改めてブログ、製作を進めたいですね!。出来る気しないけど・・・。 PCオーディオコンプレッサで2.54mmピッチを辞めるという決意をした結果、より回路が複雑になりました。というか欲が出てしまった感じ。その結果、回路上にマイコンを搭載、C言語で直接書いてオーディオレベルメータを高速に動かそうみたいな気持ちがグングン湧き上がってきて溢れかえってこの記事を書きます。 ちなみにこの記事は自分の為の忘備録兼同じ轍を踏む仲間達への人柱として書き残しますが、こ

                            素人がATmega328PにMPLAB X IDEとSNAPを使ってC言語でプログラミングする物語 /*コンパイルからVerifyまでの壁*/ - cuLo MOD Studio!
                          • Dockerで簡単にUbuntu,C/C++言語の開発環境を作る | tanaken.me

                            Mac OS上で、gcc, g++といったC/C++コンパイラを実行することが可能です。しかし、Linux関連のプログラミングを行う上で、環境の差異に手間取られていては、効率的な開発を進めることができません。そこで本記事では、Dockerで、Ubuntu環境を構築し、C/C++言語の実行環境を作る手順を説明します。(おそらくDocker for Windows でも同様の手順で進めることができるはずです) 環境 Mac OS Mojave 10.14.4 Docker for mac Version 2.0.0.0-mac78 (28905) Dockerfileの作成 はじめにdocker for mac をインストールしていない方はこちらからインストールしてください。 適当なディクレクトリに以下のようなDockerfileを作成します。

                            • C言語系(Java C# Ts Go) 日本語系(Mind DNCL プロデル なでしこ)各言語構文を比較して自作言語Re:Mindの構文を定める(switch文) - Qiita

                              C言語系(Java C# Ts Go) 日本語系(Mind DNCL プロデル なでしこ)各言語構文を比較して自作言語Re:Mindの構文を定める(switch文)C#なでしこプロデルmind日本語プログラミング言語 はじめに Java C# Ts(TypeScript) GoといったC言語を由来とする新旧の言語とMind DNCLなどの日本語プログラミング言語の制御構文を比較して自作言語Re:Mindの構文を定めます。今回はswitch文。 自作言語Re:Mindの詳しい利用シーンのイメージはこちらへ。すみません、設計段階です。日本語プログラミング言語で、C言語を由来とする新旧言語へのトランスコンパイラ言語です。 この記事内容の作業目的 今回は各言語のswitch文の構文を比較検討します。条件構文自体に分岐を抜けさせる働きがないことをフォークスルーといいます。言語によってはこのフォールス

                                C言語系(Java C# Ts Go) 日本語系(Mind DNCL プロデル なでしこ)各言語構文を比較して自作言語Re:Mindの構文を定める(switch文) - Qiita
                              • c言語でfor (int i = 0; i < 10; i++) とint i;を先に書いてからfor (i = 0; i < 10; i++) と書くのとではどちらが優れているのでしょうか?

                                回答 (9件中の1件目) リクエストありがとうございます。 C言語のバージョンなどは、他の方々が回答されていますので、そちらをご参照ください。 私は、変数のスコープを話題にさせていただきます。 その上で、「どちらが優れているのか?」の回答を先にさせていただくと、用途に依存します。 for文の後でも変数iの値を利用する場合は、int i;を先に書きますし、 for文の後で変数iの値を利用せず、メモリ容量を非常に気にするようであれば、for文の中で宣言します。とはいえ、スタック領域のメモリ使用のため、コンパイラ次第で一般的には関数単位のスタックになるのでほとんど影響がありません。 in...

                                  c言語でfor (int i = 0; i < 10; i++) とint i;を先に書いてからfor (i = 0; i < 10; i++) と書くのとではどちらが優れているのでしょうか?
                                • 5月のTIOBE Index、C言語が5年ぶりの1位 | スラド デベロッパー

                                  headless曰く、 5月のTIOBE IndexでC言語が5年ぶりにJavaを上回り、1位になっている(InfoWorld)。 Cのレーティングは昨年5月から2.82ポイント増加して17.07%、Javaも増加したものの0.28ポイント増の16.28%にとどまる。CとJavaはTIOBE Indexで不動のトップ2だが、2015年4月以降はJavaが1位を維持していた。しかし、Cは昨年最もシェアを伸ばしたプログラミング言語Programming Language of the Year 2019となっており、4月にはJavaとの差を0.01ポイントまで縮めていた。 3位以下では3位のPython(9.12%)と5位のC#(4.29%)がそれぞれ1ランク上昇し、4位のC++(6.13%)と6位のVisual Basic(4.18%)がそれぞれ1ランク下降している。ただし、順位の変動は昨年

                                  • 🔯Vi村太郎☆組み込みエンジニア@どんでん返し🔯 on Twitter: "組込みシステムの職業訓練うけてたけど、C言語イチから教わるので、その知識ベースにして好きな言語独学すればすぐコード書けるし、Linuxを仮想マシンにインストールするところから教わるし、Webもインフラも目指せる基礎が身につく事、意外と知られていない説(無料で)"

                                    組込みシステムの職業訓練うけてたけど、C言語イチから教わるので、その知識ベースにして好きな言語独学すればすぐコード書けるし、Linuxを仮想マシンにインストールするところから教わるし、Webもインフラも目指せる基礎が身につく事、意外と知られていない説(無料で)

                                      🔯Vi村太郎☆組み込みエンジニア@どんでん返し🔯 on Twitter: "組込みシステムの職業訓練うけてたけど、C言語イチから教わるので、その知識ベースにして好きな言語独学すればすぐコード書けるし、Linuxを仮想マシンにインストールするところから教わるし、Webもインフラも目指せる基礎が身につく事、意外と知られていない説(無料で)"
                                    • PDP-11 - UNIX や C言語を生み出したCPU|kzn

                                      最近でこそCPUといえば、ひとつのパッケージに封入されたマイコンのことを指すことが殆ですが、その昔はCPUを構成する回路だけでタンス数個分の大きさがありました。PDP-11 は、いわゆる「ミニコン」と呼ばれるコンピュータの CPU なのですが、当初はたくさんのICチップからなる数枚の基板で構成されていた CPU です。 それまでのコンピュータは大きな部屋を占拠するようなサイズがあったのですが、これを部屋の片隅に置けるくらいのコンパクトなサイズにまとめ、価格もなんとか手が届くところまでになったので、これを開発した会社が急激に成長し、いわゆるベンチャー企業の先駆けになりました。その中でももっとも有名だったのが DEC です。 ディジタル・イクイップメント・コーポレーション(DEC) この会社の CPU は、PDP(Programmed Data Processor)シリーズと名付けられており、

                                        PDP-11 - UNIX や C言語を生み出したCPU|kzn
                                      • PythonとC言語を比較!変数の扱い方など特徴の違いをまとめてみた

                                        PythonとC言語変数や定数の扱い方の違いをまとめてみました。C言語の変数の使い方は初めに変数を定義する必要がありますが、Pythonでは定義の必要はなく値を代入することで変数を扱うことができます。 PythonとC言語の違いって何だろう? 突然ですが、あなたもきっとC言語というプログラミング言語は知っているはず。 C言語は、「高速でコンパクトなプログラムが実現可能」な言語です。 でも、C言語ってなんか難しそうですよね。 実際、そんなC言語に対して苦手意識を持っている人は少なくないと思います。 C言語はプログラミングの低水準な部分も記述することができます。そのため、それが原因でC言語はわかりにくいというイメージがあるのかもしれません。 しかし、C言語はなんでも作ることができると言っても過言ではないほど、様々な場面で利用されています。 一方、Pythonはというと「構文が簡単」、「書きや

                                          PythonとC言語を比較!変数の扱い方など特徴の違いをまとめてみた
                                        • 【C言語入門】atoiの使い方(文字列から数値への変換) | 侍エンジニアブログ

                                          atoiで文字列をint型の数値に変換する方法 atoiは整数値の文字列型データをint型の数値データに変換するときに使う関数です。 atoiを使う場合はヘッダーファイル「stdlib.h」をインクルードする必要があります。atoi関数の第1引数に整数値の文字列型データの変数名を入力し、int型の数値データが返ってきます。 それではサンプルコードで確認していきましょう。 #include <stdio.h> #include <stdlib.h> int main(void) { char str[8] = "12345"; int num; // 文字列型からint型への変換 num = atoi(str); printf("int型変数numの値は: %d\n", num); return 0; } 実行結果: int型変数numの値は: 12345 このサンプルコードでは、文字列型変

                                            【C言語入門】atoiの使い方(文字列から数値への変換) | 侍エンジニアブログ
                                          • C言語 配列と2次元配列を図解【便利さと特別なルールを解説】

                                            こんにちは、ナナです。 ここまで変数として情報を管理してきました。この記事では新たな情報管理の仕組みとなる「配列」という機能について学びましょう。 本記事では次の疑問点を解消する内容となっています。

                                              C言語 配列と2次元配列を図解【便利さと特別なルールを解説】
                                            • モダンC言語プログラミング - asciidwango

                                              本書は、統合開発環境、デザインパターン、エクストリーム・プログラミング、テスト駆動開発、リファクタリング、継続的インテグレーションなどのモダンな開発スタイルを組込み開発に適用する方法を解説します。 花井志生 著 定価: 3,024円 (本体2,800円) 発売日:2019年1月31日 形態:B5変形(280ページ) ISBN:978-4-04-893067-3 Amazonで購入 サポート/追加情報 本書ではサーバサイドで一般的となっている設計手法や、ツールの活用方法、開発手法を、1 つ1 つC を用いた組み込み系アプリケーションの世界へと翻訳していきます。こうした内容に興味のある方にはもちろんですが、自分が昔からやってきた方法が一番で新しいやり方など不要だと思っている方にもぜひ一度読んでみていただきたいと思っています。単に毛嫌いして使わないのと、実際に使ってみた上で使わないと判断するのと

                                                モダンC言語プログラミング - asciidwango
                                              • WindowsでLinux環境とC言語の環境を準備する - Qiita

                                                はじめに 皆さん、C言語はやってますか? 僕が通っている高専の授業ではではDebian上でC言語を用いてプログラミングを行っていますが、学校でしかできない... という人もいると思います。そこで、Linuxの環境とC言語の環境をWindowsPC上に用意する方法をまとめてみます。 この記事の対象者 C言語を自分のPCで実行できるようにしたい人 Linuxのコマンドの練習を自分のPCでやりたいが、Linuxを入れるのは難しい人 この記事をお勧めしない人 Windowsを愛し、Windowsこそがどの点においても最高だと信じてやまない人 Macユーザー(ただし仮想でWindowsを使用している場合を除く) Visual Studioを使いたい人 この記事を読むにあたって最低限必要なこと PCにWindowsが入っていること PCの管理者権限を持っていること キーボード入力ができること ネットか

                                                  WindowsでLinux環境とC言語の環境を準備する - Qiita
                                                • C言語 CapmNetwork

                                                  C言語 C言語プログラミング 手続き型言語であるC言語のサンプルプログラムなどを記載しています。 各関数の詳細についてはオンラインマニュアルや「man」コマンドで最新情報を参考にすることをオススメします。 JM Project 文法関連 C言語-可変引数 C言語-関数ポインタ C言語アルゴリズム ライブラリ関連 C言語システムコール C言語-curses C言語-ソケットプログラミング 文書関連 C言語-コーディング作法 手続き型プログラミング 開発ツール関連 gcc Makefile gdb gprof strace lint autotools Makefile.amの編集 configure.acの編集 autotools最小構成サンプル autotoolsソースディレクトリ構成サンプル autotoolsライブラリ構成サンプル autotoolsオープンソースのライブラリ構成サンプ

                                                  • C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース(Impress Watch) - Yahoo!ニュース

                                                    米Microsoftは9月14日(現地時間)、C++言語の「Visual Studio Code」向け拡張機能「C/C++」がv1.0に到達したことを発表した。「C/C++」拡張機能が一般リリースされるのは今回が初めて。“IntelliSense”によるスマートなコード補完やデバッグ、リファクタリング、コードナビゲーションなど、開発効率を大きく改善するさまざまな補助機能が「Visual Studio Code」でも利用で切りるようになる。 本拡張機能はあくまでも開発補助のためのツールや機能をひとまとめにしたもので、C++のコンパイラーやデバッガーは含まれていない。公式には以下のコンパイラーがサポートされており、事前に準備しておく必要がある。 ・GCC on Linux ・GCC via Mingw-w64 on Windows ・Microsoft C++ compiler on Wind

                                                      C/C++言語のVisual Studio Code拡張機能がv1.0に到達、初の一般リリース(Impress Watch) - Yahoo!ニュース
                                                    • 【C言語】データ構造の基本を学ぼう!スタックとキューを配列で実装する - paiza times

                                                      こんにちは。倉内です。 プログラムでデータを効率よく扱うために欠かせないのが「データ構造」の理解です。 データ構造というとなんだか難しそうな感じがしますが、配列や連結リストもデータ構造のひとつであり、プログラミング学習中の方は実際にコードを書いたこともあると思います。 他にもスタックとキューや木構造、グラフなどのデータ構造がありますが、今回はその中でも基本となるスタックとキューについて学べる動画講座「C言語入門編9: データ構造について理解しよう」を紹介します。 まずはスタックとキューがどのようなデータ構造かを理解し、配列を使って実装する方法を学びます。最終的にはRPGの攻撃シーンのようなプログラムを作成しましょう! C言語でデータ構造を学ぼう 本題に入る前にC言語の基本を押さえておきたいという方は「C言語入門編」を受講してみてください。 特に配列についてはこちらの講座で復習しておくと、こ

                                                        【C言語】データ構造の基本を学ぼう!スタックとキューを配列で実装する - paiza times
                                                      • C言語の可変長引数の関数の作り方 - Qiita

                                                        可変長引数の関数の作り方をまとめる。 可変長引数の関数の宣言と実装 仮引数の可変にする部分を...で書く。 // プロトタイプ宣言 // 第一引数で文字列をもらって、第二引数以降は型も引数の数も特に指定しない void func(char *arg_1, ...);

                                                          C言語の可変長引数の関数の作り方 - Qiita
                                                        • 「C言語は速い」とよく言われますが、この言語は1970年代に開発された言語ですよね?何故未だに速度で勝てないのでしょうか?

                                                          回答 (31件中の1件目) 古い方が速い、という傾向を持ったケースもあり(なのでまだスーパーコンピューター用のコード開発でFortranが使われたりしますし)、新しい技術を使ったので速くなる、というケースもあります。 例によって言語が速いか遅いかという議論は、アプリケーションや実行系を決めないとあまり意味がないのですが、例えばこの講演で53分くらいから58分くらいまでで言っているのは、メモリを割り当てていろいろとやるようなプログラムをRustを使って書き直してみたら、Rustが要求するメモリモデルに従わざるを得ないものの、一旦コンパイルが通るようになればコンパイラがメモリレイアウトなど...

                                                            「C言語は速い」とよく言われますが、この言語は1970年代に開発された言語ですよね?何故未だに速度で勝てないのでしょうか?
                                                          • C言語で静的・動的ライブラリを作成・使用する方法 - Qiita

                                                            目的 Linuxで.a(静的)と.so(動的)の2種類ライブラリを作成できるが、コンパイルする時に同じような方法で使用される。 即ち、異なるライブラリのlibA.aとlibA.soが存在しても、コンパイルのコマンドではライブラリの拡張子が省略され、gcc xxx -lAのようになるため、どっちが使用されるかは曖昧になる。 libA.aとlibA.soが共存する場合の動作確認をしたく、メモする。 先に結論 gcc -o main main.c -L. -lA のように、ライブラリlibA(-lAで指定)が指定されている場合、libA.so(動的)はlibA.a(静的)より優先的にリンクされる。 追記 gcc -o main main.c -L. -static -lA のように、「-static」を指定すれば、libA.a(静的)はリンクされる。 追記2 gcc -o main main.c

                                                              C言語で静的・動的ライブラリを作成・使用する方法 - Qiita
                                                            • Windows 10で始めるC言語開発(26) WindowsでC言語開発! ウィンドウを作る

                                                              Microsoftのチュートリアルで学んでいこう 前回までで、Windows APIを使ってモーダルダイアログボックスを作成した。短いソースコードで実際に動作するウィンドウプログラミングを体験するものとして、ダイアログボックスを表示するMessageBox()はわかりやすいものだったと思う。今回から、ウィンドウを作成する基本的なコーディング方法を取り上げていく。 Windows APIを利用したウィンドウプログラミングとしては、Microsoftが提供している次のチュートリアルに沿って学習を進めるのがよいだろう。比較的短く簡潔にまとまっており、説明もわかりやすい。 Module 1. Your First Windows Program - Win32 apps | Microsoft Docs ただし、上記チュートリアルに掲載されているサンプルソースコードは、現在ではそのままではビルドで

                                                                Windows 10で始めるC言語開発(26) WindowsでC言語開発! ウィンドウを作る
                                                              • 【C言語 – for,while】二重ループからのスマートな脱出|毎日がsyntax error フリーすぎるエンジニアの気まぐれ奮闘記

                                                                forや、whileといったループ文の二重処理において、 【内ループから抜ける時に、外ループからも抜けたい】 って時、意外と面倒だったりしません? どうにかならないものかと、いろいろと考えてみました。 例① for (i = 0; i < outerMax; i++) { for (j = 0; j < innerMax; j++) { if (flag) { isError = true; break; } } if (isError) { break; } } 内ループでフラグを立ててbreakし、外ループで参照する方法。 多分、最もポピュラーなもの? この方法を取っている現場が最も多かった気がします。 ただ、個人的には2回判定するのがちょっと嫌なんですよね。。。 例② for (i = 0; i < outerMax; i++) { for (j = 0; j < innerMax;

                                                                  【C言語 – for,while】二重ループからのスマートな脱出|毎日がsyntax error フリーすぎるエンジニアの気まぐれ奮闘記
                                                                • 川合秀実 on Twitter: "私は19年ほど前、第一世代OSASKという自作OSを作っていました。その自作OS上でC言語を使った開発ができるようになりたくて、Cコンパイラを作ろうと考えました。それで検討した結果、gccを移植することにしました。時間はかかりまし… https://t.co/0tcjOQ5wft"

                                                                  私は19年ほど前、第一世代OSASKという自作OSを作っていました。その自作OS上でC言語を使った開発ができるようになりたくて、Cコンパイラを作ろうと考えました。それで検討した結果、gccを移植することにしました。時間はかかりまし… https://t.co/0tcjOQ5wft

                                                                    川合秀実 on Twitter: "私は19年ほど前、第一世代OSASKという自作OSを作っていました。その自作OS上でC言語を使った開発ができるようになりたくて、Cコンパイラを作ろうと考えました。それで検討した結果、gccを移植することにしました。時間はかかりまし… https://t.co/0tcjOQ5wft"
                                                                  • daishiro_jp on Twitter: "子どものためのC++言語、びっくりした https://t.co/iwwfzY8KVk"

                                                                    子どものためのC++言語、びっくりした https://t.co/iwwfzY8KVk

                                                                      daishiro_jp on Twitter: "子どものためのC++言語、びっくりした https://t.co/iwwfzY8KVk"
                                                                    • コンパイラの作り方 Cで書かれたC言語コンパイラ(比較演算子版)をC#で書き直してみる - Qiita

                                                                      はじめに トランスコンパイラを実装してみたいのですが、とりあえずコンパイラ作ったことないので、ネット上でよくヒットして前半部分は説明もたいへん詳しい低レイヤを知りたい人のためのCコンパイラ作成入門の前半部分をC#で書いてみます。(比較演算子対応)だんだん1ステップの実装量が増えてきている感じです。 この記事内容の作業目的 言語処理系の基礎知識、基礎技能として、トークンや抽象構文木、パーサーといった基礎概念の獲得。参考サイトの9ccの「ステップ7: 比較演算子」に相当します。9ccは後半にいくほど解釈可能範囲を広げるインクリメンタル実装のため、段階的に対応構文が増えていきます。 この記事内容の作業環境 Windows11 Windows11WSL(Ubuntu) VSCode(Visual Studo Code) VSCodeUserSetup-x64-1.67.2 gcc 11 11.3.

                                                                        コンパイラの作り方 Cで書かれたC言語コンパイラ(比較演算子版)をC#で書き直してみる - Qiita
                                                                      • C言語のコードをアセンブラ出力を確認しながら最適化する

                                                                        最近のパソコンでは、CPUは高速でメモリもたくさんあるので、プログラマが頑張って高速な機械語を吐くように意識したコードを書くことはあまりありません。ですが、組み込みの世界ではまだまだCPUもメモリも貧弱な環境がたくさんあります。高速なCPUや大きいメモリはそのまま原価に跳ね返るためです。 そこで今回は、高速な機械語を吐くC言語のソースコードを書く練習をしてみます。やり方は、3種類の100回ループするC言語のソースコードを、それぞれアセンブラに変換して、どのくらい効率が良くなるか比較してみます。 コンパイルしたコードのアセンブラの確認 C言語のソースコードをコンパイルすると、通常はオブジェクトファイル(.o)に変換されます。 $ gcc -O2 -c hoge.c -o hoge.o これを、オブジェクトファイルでなくアセンブラのコードに変換するには下記のように -S オプションを使います。

                                                                          C言語のコードをアセンブラ出力を確認しながら最適化する
                                                                        • C言語を超かんたんに解説【例えで直感的に理解可能】

                                                                          C言語のざっくりとしたイメージをお伝えする動画です。 繰り返しプログラミングをすれば僕が伝えたいことをより理解できると思います。 動画の内容 ・C言語の特徴 ・C言語の基本 ・C言語のルール 電子工作やプログラミングに役立つ情報を定期的に配信しています。 チャンネル登録よろしくお願いします! ■関連動画■ ・電子工作におすすめのマイコン【エンジニアが選ぶベスト3】  https://youtu.be/TTqLRNlsb70 ・ブレッドボードの使い方をエンジニアが解説【電子工作に欠かせない便利なアイテム】  https://youtu.be/-8CbGhjji2A ・電子工作の始め方【エンジニアが初心者向けに紹介】  https://youtu.be/7DV7JUchmRA ■ブログ■ https://miraiworks.org/ ■Twitter■ https://twit

                                                                            C言語を超かんたんに解説【例えで直感的に理解可能】
                                                                          • わずか16KB! WebAssemblyで動くミニC言語オフラインコンパイラ&インタプリタ webci0

                                                                            ruby4ijを早速使っていただきました!「風船 Ruby 版 (ruby4ij)/Kidspod;」 ただ、なかなかにやっかいな開発環境づくり。開発するために必要なツールが多く、それぞれがバージョンアップするので環境構築方法が変わってしまったりして鬼門です。 そこで便利なweb技術。クラウド処理もありですが、IchigoJam web でも使っている、エッジ技術、WebAssemblyを使ったパパっと手元で軽快動作を目指します。 手始めに、こちら学習用ミニCコンパイラ「ci0」を移植して作った「webci0」 「webci0 - mini C compiler ci0 in WebAssembly」 C言語風に書いたプログラムをスタックマシンなVM用マシン語に変換、インタプリタとして実行します。標準関数は文字列表示のputstrと数表示のputnumのみ。メイン部分は500行ちょっとのオ

                                                                              わずか16KB! WebAssemblyで動くミニC言語オフラインコンパイラ&インタプリタ webci0
                                                                            • 新規格に完全対応したC言語/C++言語対応テストツール最新版

                                                                              米国でソフトウェアの品質保証・セキュリティテストサービスを行うParasoft Corporation(以下略、Parasoft社)の国内総販売代理店を務めるテクマトリックスは4月16日、Parasoft社のC言語/C++言語対応テストツール「C/C++test」の最新版2023.2の販売を開始した。 最新コーディング規格に完全対応、「Visual Studio Code」のコードプライング機能を強化 「C/C++test」は、コーディング規約チェックやフロー解析などの静的解析機能と単体テスト、カバレッジ計測、実行時メモリエラー検出などの機能を提供するC言語/C++言語対応のオールインワンテストツール。 最新版では、2023年4月発行の自動車産業向けのC言語ソフトウェア設計標準規格「MISRA C(Motor Industry Software Reliability Associatio

                                                                                新規格に完全対応したC言語/C++言語対応テストツール最新版
                                                                              • C言語コードの高速化を支援するソフトウェアのβ版を公開

                                                                                オスカーテクノロジーは、C言語コードの高速化を支援するソフトウェア「OSCAR Multicore Suite」のβ版を公開した。β版公開中は、無料で使用できる。 オスカーテクノロジーは2021年7月1日、C言語コードの高速化を支援するソフトウェア「OSCAR Multicore Suite」のβ版を公開したと発表した。β版公開中は無料で使用可能で、β版ユーザーのフィードバックを基に改善を加えた商用版を提供する予定だ。 同ソフトウェアは、「OSCAR Multicore Estimator」「OSCAR Multicore Profiler」「OSCAR Parallel Compiler」と3つの機能を有しており、いずれもC言語で開発したソフトウェアのソースコードを対象としている。条件分岐が多く、ループ処理の少ないプログラムにも適用できる。 OSCAR Multicore Estimat

                                                                                  C言語コードの高速化を支援するソフトウェアのβ版を公開
                                                                                • マシン語で検証、RustはC言語の代わりになりうるか? IchigoJamでライトに楽しむ組み込み開発 panic編と情報処理

                                                                                  情報処理学会「情報処理」8月号の特集「プログラミング教育の最前線」(目次、記事一覧) モダン言語全盛時代に、なぜBASICか?なぜはんだづけなのか?6,586文字、7ページで綴りました。コンピューター好きな人、増やしましょう! 気になるモダンプログラミング言語の1つ、Rust(ラスト)。Denoとrust4ijをきっかけに入門。 IchigoJam と、Arm Cortex-M0 マシン語を使って、C言語の代替手段にできるか検証開始! Rustの特徴のひとつ、ゼロコスト抽象化は、C言語の構造体と構造体ポインタを使った関数群や、関数ポインタをすっきり記述できていい感じ。 trait(トレイト)は、C言語では関数ポインタで実装するJavaのインターフェイス的なもの、こちらもきれいな記述でゼロコスト。 メモリを扱う際にもよく使う配列、うっかり領域外アクセスがバグやセキュリティホールになりがちです

                                                                                    マシン語で検証、RustはC言語の代わりになりうるか? IchigoJamでライトに楽しむ組み込み開発 panic編と情報処理