並び順

ブックマーク数

期間指定

  • から
  • まで

441 - 480 件 / 1002件

新着順 人気順

C++言語の検索結果441 - 480 件 / 1002件

  • 【C言語】日本語文字列の字数カウント・文字列切り出し(マルチバイト文字) - Qiita

    はじめに C言語で日本語文字列を扱う場合は、例えば、ワイド文字のライブラリを使用する方法があります(参考:C言語用語集 - ワイド文字 )。 しかし、ワイド文字は、1文字あたりのバイト数を固定して処理することが前提であるため、可変長の文字コード(UTF-8、SHIFT_JIS、EUC-JPなどのマルチバイト文字)を扱うには、別の方策が必要となります。 (以上、yumetodoさんのご指摘を受け一部修正をさせていただきました。) ここでは、マルチバイト文字における「日本語文字数のカウント」及び「日本語文字列の切り出し」について、サンプルコードとともにまとめておきます。 なお、日本語文字数のカウント(UTF-8、SHIFT_JISのみ)については、1年前に自分のHPにも書いています。 今回は、当時の記述の補正もしつつ、各文字コードについて一覧的に記述をしています。 使用しているコンパイラはgc

      【C言語】日本語文字列の字数カウント・文字列切り出し(マルチバイト文字) - Qiita
    • 【C言語】 未使用引数警告の消し方 (unused parameter) - C言語が好きかい?

      warning: unused parameter ‘argc’ 警告:未使用引数 [-Wunused-parameter] ■未使用引数の警告が出る例 #include <stdio.h> //未使用引数の警告が出る void f(int argc,char *argv[]){ printf("%s\n",argv[0]); } int main(int argc,char *argv[]){ f(argc,argv); } 未使用引数を削除できないか検討しましょう。 不要な引数であるならば削除しましょう。 static関数の場合は影響範囲がファイル内で閉じるので 積極的に修正しましょう。 外部関数の場合は影響範囲が広いので慎重な検討が必要です。 修正前:void f(int argc,char *argv[]) 修正後:void f(char *argv[]) ■単純には直せない時 関

      • C++言語でSwitchBot API v1.1 リクエスト - Qiita

        概要 M5PaperからSwitchBotを操作するために、2022年9月に新しくなったSwitchBotAPI v1.1に挑戦しました。 公式のリクエストを作成するサンプルには、C++が存在しなかったため苦労しました。 API呼び出しまでの流れ ココのとおりアプリで開発者設定を行う アプリから トークン 、シークレットコードを取得する curlなどをつかって操作したいデバイスのdeviceIDを取得する curl --request GET 'https://api.switch-bot.com/v1.0/devices' -H 'Authorization: <じぶんのとーくん>' -H 'Content-Type: application/json; charset=utf8' 開発環境でAPIをリクエストする処理を実装する 苦労したところ v1.1になったことで認証が厳しくなり、リ

          C++言語でSwitchBot API v1.1 リクエスト - Qiita
        • 世界初、レゴ® SPIKE™ プライムC言語学習教材を1月に新発売! | (株)アフレル|ロボットとAI活用・人材育成を支援

          株式会社アフレル(福井県福井市、代表取締役社長 小林靖英、以降「アフレル」)は、レゴ® エデュケーション教材のSPIKE™ プライム(以下、SPIKEプライム※2)をC言語※1で動かす「SPIKE™ プライム C言語 プログラミングブック」の販売を開始します。本商品は1月10日より発売し、3月上旬より順次出荷を開始します。 SPIKEプライムは、ScratchあるいはPythonを用いてプログラミングが学べる教材として世界中で広く使われていますが、昨今「C言語で動かしたい」というお客様からの声が増えてきたことから、そのニーズに応えるべく「C言語」でSPIKEプライムを動かす教材を開発しました。本テキストでは、自動車産業などの組み込み系等の分野で広く使われているC言語を用いて作成したプログラムがロボット(SPIKEプライム)の動きとなり、プログラミング開発および学習の成果の見える化をし、より

            世界初、レゴ® SPIKE™ プライムC言語学習教材を1月に新発売! | (株)アフレル|ロボットとAI活用・人材育成を支援
          • ムトー研究所【C言語でNESアプリを作成(技術的な話題)】

            C Functions may not return structs (or unions), and structs may not be passed as parameters by value. However,struct assignment *is* possible. 関数呼び出し時のスタックに積めるサイズが限定されています。 ポインタ変数であれば構造体や共用体を引数や戻り値で受け渡しが可能です。 Most of the C library is available with only the fastcall calling convention. It means that you must not mix pointers to those functions with pointers to user-written, cdecl functions (the ca

            • C言語の関数の引数の評価順序 - あきーのブログ

              あらすじ ( ^o^)<ショートコーディング楽しい! ( ^o^)<よーしprintfの引数の中でポインタの参照とインクリメント同時にやっちゃおう! (;^o^)<あれ…期待した通りに動作しないぞ… ( ˘⊖˘) 。o(待てよ、引数の評価順序ってどうなってるんだ) |C/C++|┗(☋` )┓三 ( ◠‿◠ )☛未定義だ ▂▅▇█▓▒░('ω')░▒▓█▇▅▂うわあああああああああああ C言語の関数の引数の評価順序に見事に引っかかった。 C言語では関数の引数の評価順序は未定義で処理系によって異なるらしい。 そこで、ちょっと気になったので手元で使えるGCCとVisualStudioで検証してみることにした。 検証コード #include <stdio.h> int a; int func(int arg){ a=arg; return arg; } int main(void){ print

                C言語の関数の引数の評価順序 - あきーのブログ
              • [ C言語 ] Unix や Linux で共有ライブラリ ( .so ) を作成する – 偏差値40プログラマー

                ここでは、Unix や Linux の C 言語で共有ライブラリ ( .so ) を作成して使用する方法を掲載しています。 共有ライブラリの作成 共有ライブラリ作成のサンプルコードです。関数名は ( test ) 、ファイル名は test.c および test.h とします。 test.h #ifndef __TEST_H__ #define __TEST_H__ #if defined (__cplusplus) extern "C" { #endif extern int test(int num); #if defined (__cplusplus) } #endif #endif /* __TEST_H__ */ test.c #include <stdio.h> #include "test.h" int test(int num) { printf("%d\n", num);

                • 【C言語】マルチスレッドで画像の拡大縮小を高速化

                  このページでは、マルチスレッドによる画像の拡大縮小の高速化方法およびそのC言語プログラムについて解説します。 画像処理はたくさんの計算が必要になるものが多いため、マルチスレッドによる処理の高速化の恩恵が大きいです。 マルチスレッドによる画像の拡大縮小 まずマルチスレッドによる画像の拡大縮小について解説します。 マルチスレッドとは、下のページで解説しているように大きな仕事をもっと小さな単位の仕事に分割することで、複数のコアで同時に仕事を処理できるようにするものです。 コア数が複数あるのであれば、このコアの同時処理により高速化が望めます。 入門者向け!C言語でのマルチスレッドをわかりやすく解説 画像の拡大縮小においては、この大きな仕事が「画像全体の拡大縮小」となります。 マルチスレッドでは、さらにこれをもっと小さな単位の仕事に分割します。 スレッドの分け方 では、どのように分割するかというと、

                    【C言語】マルチスレッドで画像の拡大縮小を高速化
                  • C言語のポインタとは要するにグローバル変数のことだ、という視点は正しいですか?それはなぜですか?

                    回答 (14件中の1件目) すでに多数の「違う」という回答がありますが、少し違った視点で。 C言語についてご存知ならば、高級言語の中では低級と呼ばれたり、高級アセンブラと呼ばれていることもご存知かもしれません。実際、C言語はアセンブラよりは使いやすく、それでいてアセンブラを代替出来る様に設計されています。 ポインタもそのCPUの機能から来ています。 CPUが機械語の中で何らかの対象を操作する方法としてアドレッシングモードというものがあります。その内容はCPUによっても変わってきますが、代表的なものにベースポインタ(あるいはベースレジスタ)というものを基準としてそこからのオフセットで...

                      C言語のポインタとは要するにグローバル変数のことだ、という視点は正しいですか?それはなぜですか?
                    • WindowsにEclipse(for C/C++)でC/C++言語開発環境を作成する

                      Windowsに統合環境(IDE)のEclipseをインストールしてC言語および/C++の開発環境を作成します。 最近は開発から少し離れていたということもあり、何か簡単なプログラムでも作ってみようということで、昔懐かしいC言語の開発環境を探しました。 できるだけ開発環境作成に手間とお金ををかけたくなかったので今回はEclipse(for C/C++)でC言語の開発環境を構築することにしました。 開発環境作成にあたり、下記の記事を参考にEclipse(for C/C++)のインストールを進めました。 Eclipse(for C/C++)をインストールして Hello World まで 統合環境(IDE)Eclipseとは IBMによって開発された統合開発環境 (IDE) の一つで高機能ながらオープンソースであり、Javaをはじめとするいくつかの言語に対応し、人気の高いIDEです。 Eclip

                        WindowsにEclipse(for C/C++)でC/C++言語開発環境を作成する
                      • C言語の基礎

                        本サイトでは、Google Adsense社の広告を配信しています。 このため、広告配信プロセスの中でデータを収集するために、 Cookieやウェブビーコンを使用しています。 もし、第三者にデータ送信を行いたくない場合は、 ブラウザのCookie機能をオフにしてアクセスしてください。 詳しくは、Adsense広告の、公式プライバシーポリシーをご覧ください。

                          C言語の基礎
                        • 【日付計算】何日後、何日前の日付計算を極める by C言語 - 我が家の流儀

                          今日から1万日後の日付けは何日か ?というような日付計算を1から考えました。C#なんかだとライブラリがありますが、あえてC言語でアルゴリズムを考えてみます。最初はシンプルに実現し、完成系は足す値に寄らない高速演算を目指します。日付計算は簡単なようで複雑です。久しぶりに本気でアルゴリズムと格闘しました。 1. 日付けの基本的なルール 2. シンプル案 3. 最適化を検討する 3.1 方針 3.2 Step1. 年月日を日数に変換 3.3 Step 2. 日数での加減算 3.4 Step 3. 日数から年月日変換 4. 最適化案 5. 効果確認 1. 日付けの基本的なルール プログラマーには当たり前ですが、1年の日数は閏年により変動があります。 4で割れたら閏年 でも、100で割れたら閏年ではない でもでも、400で割れたらやっぱり閏年 というルールです。 2. シンプル案 最初から最適解を求

                            【日付計算】何日後、何日前の日付計算を極める by C言語 - 我が家の流儀
                          • C言語学習者のPythonスクレイピング入門 - Qiita

                            はじめに C言語を学習しているPython初心者の私がスクレイピングに手を出したぞぉ~っている話ですっ! 私は今大学生なので、弊学のシラバスでもスクレイピングしていこうかなと思います。(禁止されていないことは確認済み)。 スクレイピングとは スクレイピングとは何か っていうのは、この記事にたどり着いた人なら知ってるんじゃないかなと思うので、説明は割愛です。Webサイト情報から自分に必要な情報だけを抽出することをスクレイピングって言うらしいですけど。Python以外にGoogleAppsScript(GAS)でもやっている人いるみたいです。スクレイピングを定期実行したい、頻繁にデータを更新したいとかならGASの方が便利かも。 経緯 筆者は「Kadai-Board」という香川大学の学生向けのWebアプリを作っているのですが、それで、LMS(Moodle)と教務システム(住友系SIerのSCSK

                              C言語学習者のPythonスクレイピング入門 - Qiita
                            • MacでのC言語の環境構築 | クロジカ

                              以前Windowsでの環境構築の記事を書きました。 WindowsでのC言語の環境構築 WindowsだとMinGWというのをインストールしたり、MacではLinuxのコマンドが使えるのですが、Windowsでは使えなかったりといろいろめんどくさいです。 MacのC言語開発環境はとても簡単です。 早速やっていきましょう。 開発者向けツールのインストールさすがにデフォルトでC言語が実行できるわけではないので、ターミナルでの作業をしていきます。 ターミナルはFinder > アプリケーション > ユーティリティ > ターミナル で開けます。 $ xcode-select --install このコマンドを実行すると、インストールするかを求められるので、インストールをクリックします。その後使用許諾も同意して、インストールが完了します。 gccがはいったか確認します。 gcc -v ちゃんと入りま

                                MacでのC言語の環境構築 | クロジカ
                              • C言語(またはC++)できると書いてる人に必ず出す問題

                                int a=1; int x[] = {2, 3}; int b = a[x]; bに格納される値とその理由を答えよ。 (includeとかmainとかは省略) ちょっと意地悪な問題だけど、 即答できない人はC/C++を根本的に全く理解してないので落としてる。 コンパイルエラーだと思った人は入門書読み直してきてね。

                                  C言語(またはC++)できると書いてる人に必ず出す問題
                                • 【C言語入門】文字列内の検索方法まとめ(文字指定、正規表現) | 侍エンジニアブログ

                                  正規表現を使った検索方法について C言語で正規表現を使った文字列内の検索を行うには、ヘッダーファイル「regex.h」をインクルードする必要があります。 Windows環境下では「regex.h」やこれに関連するライブラリがインストールされていない場合もありますので、その場合は使っている環境にあわせて用意をする必要があります。 例えばMinGW(Minimalist GNU for Windows)を使用している場合は、sorceforgeからインクルードファイル、ライブラリファイルなどのダウンロードが可能です。 正規表現を使った検索を行うには、正規表現のオブジェクトを格納するregex_t型の構造体と、正規表現にマッチしたインデックスを格納するregmatch_t型の構造体の配列が必要となります。 また次の3つの関数を使用します。 regcomp: /* 正規表現のコンパイル。成功時には

                                    【C言語入門】文字列内の検索方法まとめ(文字指定、正規表現) | 侍エンジニアブログ
                                  • ChatGPTでC言語のプログラム出力を試した所感 - Qiita

                                    1.この記事の内容 ChatGPTを使って,いくつかの方法でC言語のプログラムを出力させましたので,その方法と生成されたプログラムに対する所感を記します. ソースコードの詳細は,筆者のGitHubで公開していますので,併せて参照ください. まず結論ですが,今回はソートをテーマにChatGPTにC言語のソースコードを出力させましたが,基礎的なプログラミング能力は高い印象でした. ソートというテーマが簡単すぎたところもありますが,今回の実験条件においては,実装バグなく正常に動作するプログラムがChatGPTから出力されました. ただ1点,Pythonで実装したクイックソートのプログラムをC言語に変換させた際に,マージソートに置き換わってしまった点が,等価変換に失敗した事例となりました. 2.背景 先日,TensorFlowで実装されたYOLOv3のNMS処理を,TensorFlowを使用しない

                                      ChatGPTでC言語のプログラム出力を試した所感 - Qiita
                                    • 【C言語】動的メモリ確保の方法と注意点 | KTAKEDEV

                                      C言語では、メモリの動的確保を行うことができます。動的確保は、必要なメモリ領域が実行時に変化する場合や、大量のメモリ領域が必要な場合に便利です。 ここでは、メモリを動的に確保する方法と、その注意点について解説します。

                                      • C++言語でのint型とlong型とlong long型の違いについて

                                        c は太古からある言語です。 c++ は c との互換性を重要視している言語なので、この件に関しては事情は c と同じです。というあたりを知ってもらった上で c は 8bit マイコンでも 16bit マイコンでも使える言語です。そして int は「その処理系で自然な大きさ」を選べるよう、言語規格書上は大きさ(ビット数)を厳密に定めていません。 c99 言語規格書 ISO/IEC 9899:1999 が定めているのは char は 8bit 以上 int 以下のサイズであること int は 16bit 以上のサイズであること long は 32bit 以上 long long 以下のサイズであること long long は 64bit 以上のサイズであること 今でも組み込み系で当然のように使っている 8/16bit マイコンで先の条件を満たすには char 8bit int 16bit l

                                          C++言語でのint型とlong型とlong long型の違いについて
                                        • 【C言語】関数の動きをまとめる | インフラエンジニアの技術LOG

                                          関数って、最初は何のことかさっぱりわかりません。 しかし、やっていくうちになんとかなるもんです。 簡単に言えば「処理のまとまり」ってことみたいです。 これだけ言ってもあまりわからないと思いますが、例えば。 「会社へ行く」というプログラムと、「公園へ出かける」という2つのプログラムを作成しようとしています。 すると、この2つのプログラムは以下の流れは一緒とします。 ベッドから起きる。 歯磨きをする。 顔を洗う。 服を着替える。 どちらのプログラムにも共通しているので、「朝の準備」の処理をまとめるとすごく楽になります。 関数を使うことのメリット 関数を使うことにより、いろいろなメリットがあります。 処理を分担することが可能 関数を簡単に使い回しが出来る プログラムが見やすくなる 機能に変更や修正が加わっても、関数を修正することにより、メインのプログラムを修正しなくても済む こんな感じで、関数を

                                            【C言語】関数の動きをまとめる | インフラエンジニアの技術LOG
                                          • Tide(潮汐) DOS版C言語で実装→AppleWatchで動かす - yshigu’s diary

                                            はじめに イカダでの釣行するとき、潮汐が重要みたいです。 釣行に行く、三重県南伊勢町、愛知県知多市の2つで十分 湾内では、気圧や風の影響がでるので大まかな値で十分。気にしません 参考にする潮位プログラム http://fmie.cside7.com/program/tide/download.html この中の「TIDEソース公開版(C++)」を利用させていただきます 港データ(TD)は別途「TIDEforWIN」からいただきます C言語の準備 Mac上のWin11にMS-DOS Playerを使ってTurbo Cをインストールしてみました。 階層:Mac → Win11 → MS-DOS Player → Turbo C qiita.com ヤッターと思いましたが。。。  日本語が「化けとるみ」たいです 入手したTurbo Cですが、PC-98というNECのパソコン用みたいです。グーグル

                                              Tide(潮汐) DOS版C言語で実装→AppleWatchで動かす - yshigu’s diary
                                            • LuaとC言語との関係性を徹底解説!そもそもの内容からその特徴まで分かりやすく解説します。 | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社

                                              プログラミング言語には様々な種類がありますがその中でもベーシックで利用頻度の高いC言語と融和性が高いと言われるのがLuaです。Luaとはどういう言語でどのような場面で利用されているのでしょうか?今回はプログラミング言語Luaについてその特徴からC言語と組み合わせ方、実際の使用例などを詳しく解説していきます。 Luaとは? Luaはスクリプト言語の一種 Luaはプログラミング言語の中でもスクリプト言語と分類される言語の1つです。スクリプト言語はコンパイラを必要としない言語で、有名なもので言えばJavascriptやPythonなどがあります。 スクリプト言語は用途が限定される場合が多いですが、Luaは特にC言語と組み合わせることを前提としたスクリプト言語になっています。 元々Luaはポルトガル語で月を意味する言葉でブラジルの大学で設計開発されました。 Luaの特徴 組み込みしやすく拡張性が高

                                                LuaとC言語との関係性を徹底解説!そもそもの内容からその特徴まで分かりやすく解説します。 | GeeklyMedia(ギークリーメディア) | Geekly(ギークリー) IT・Web・ゲーム業界専門の人材紹介会社
                                              • c言語でドローンのプログラミングが出来るときいたのですが本当ですか?、簡単ですか?出来ればサンプルコードをお願いします。 ... - Yahoo!知恵袋

                                                > c言語でドローンのプログラミングが出来るときいたのですが本当ですか? どの「ドローン」かによるのでは? Tello EDU http://www.ryzerobotics.com/ であれば https://www.ryzerobotics.com/jp/tello-edu/downloads SDK 2.0 User Guide によると UDP 通信でコマンドを送るだけで制御できるようです。 Private IP adderess と Port No が明記されていますので Windows PC であれば WinSock を使用して UDP Client のコードを 書けば制御できます。 C でも C++ でも C# でも Python でも制御できるでしょう。

                                                  c言語でドローンのプログラミングが出来るときいたのですが本当ですか?、簡単ですか?出来ればサンプルコードをお願いします。 ... - Yahoo!知恵袋
                                                • 新・明解C言語 入門編 第2版 | SBクリエイティブ

                                                  【シリーズ累計120万部突破!】 わが国最大のC言語のベストセラー&ロングセラーの大改訂版。 「最も明快で、最も正確なC言語入門書」として、日本で最も多くの読者を獲得しているC言語入門書の改訂版です。プログラミング教育界の巨匠 柴田望洋が、実際に動作するサンプルプログラムと視覚的なイメージをつかみやすい図表を使って、C言語の基礎を語り口調で丁寧に解説しています。 初めてC言語を学ぶ初心者から、これまでの入門書では理解できなかった経験者まで、すべての学習者にとって最良の入門書です。 第1章 まずは慣れよう 第2章 演算と型 第3章 プログラムの流れの分岐 第4章 プログラムの流れの繰返し 第5章 配 列 第6章 関 数 第7章 基本型 第8章 いろいろなプログラムを作ってみよう 第9章 文字列の基本 第10章 ポインタ 第11章 文字列とポインタ 第12章 構造体 第13章 ファイル処理

                                                    新・明解C言語 入門編 第2版 | SBクリエイティブ
                                                  • C 言語で配列を動的に割り当てる

                                                    関数 malloc を使って C 言語で配列を動的に割り当てる 関数 realloc を用いて C 言語で既に割り当てられたメモリ領域を変更する C 言語で与えられたオブジェクトの配列に対する割り当てを実装する この記事では、C 言語で配列を動的に割り当てる方法の複数の方法を示します。 関数 malloc を使って C 言語で配列を動的に割り当てる 関数 malloc はヒープ上の動的メモリを確保するためのコア関数です。与えられたバイト数を確保し、メモリ領域へのポインタを返します。したがって、特定のオブジェクト型の配列を動的に確保したい場合は、まずその型へのポインタを宣言しなければならません。次に、引数にオブジェクトのサイズを掛けた要素数を渡して malloc を呼び出します。 次の例では、文字列を格納するためのメモリを確保しています。セキュアコーディング標準で要求されているように err

                                                      C 言語で配列を動的に割り当てる
                                                    • C言語こそ最初に学べ【未経験者にオススメする3つの理由】

                                                      こんにちは、ナナです。 本記事は、世の中の流れに逆らって「C言語」を初学者にオススメする内容となっています。 「C言語 挫折」などを検索すると、C言語の習得で挫折されている方が多い印象を持ちます。 有名な方々も「C言語は挫折するだけで難しいからやめとけ!」「最初はC言語じゃなくてWeb系言語を学べ!」など情報発信しています。 プログラミング未経験の人たちは、このような情報を見て「C言語はやめといた方がいいらしいぞ」という先入観を持つ方も多いことでしょう。 しかし、これは本当に事実なのでしょうか? 私はC言語を直接指導した人数で言えば、日本国内なら割と上位に入るのではないかという程度の経験値を持っています。 今でも年間200人程度の初学者に対して1カ月程度のC言語やマイコン制御の教育をしますが、世の中が言うほど実際の挫折率は高くありません。「この子は無理っぽいな」と感じるのは全体の1割程度で

                                                        C言語こそ最初に学べ【未経験者にオススメする3つの理由】
                                                      • キューのデータ構造をC言語で実装 | ITを使っていこう

                                                        キューのデータ構造を実装 キューのデータ構造は配列で実現し、リングバッファにします。 enqueueとdequeueの関数を実装しています。 バッファがフルか空かの判定は、enqueueとdequeue時に行い、 enumで定義した定数で状態管理をしています。ここが今回少し悩んだ箇所です。いくつか方法がありますが、最終的にわかり易さを優先して、フラグで状態管理することにしました。 下記が実装したソースコードになります。 main関数でdequeueとenqueueをしています。 $ cat queue.c #include <stdio.h> #define SIZE 3 enum status{ EMPTY, AVAILABLE, FULL }; typedef struct{ int data[SIZE]; int head; int tail; int flag; }queue_t;

                                                        • C言語で作成した関数をPythonで実行する - Qiita

                                                          田中太郎の備忘録 【Python】C言語で作成した関数をPythonで実行する https://tanakatarou.tech/261/ が非常に便利そうだったのでご紹介。 私のPCの環境 ubuntustudio 2004 Python 3.8.10 環境の違いによる変更点 wrap_file.c #include "/usr/include/python3.6m/Python.h" ↓ #include "/usr/include/python3.8/Python.h" 私の環境のPython3の不具合?? /usr/include/python3.8/cpython/pystate.h #include "cpython/initconfig.h"   //同じフォルダにあるので"cpython/"を削除 ↓ #include "initconfig.h" この変更は本当に正しいの

                                                            C言語で作成した関数をPythonで実行する - Qiita
                                                          • [C言語] exit()と_exit()の違い - Qiita

                                                            なんとなく気になったので調べてみました。 exit: プログラムの終了時に呼び出されるライブラリ関数(glibc) _exit: exit の中から呼ばれ、exit_group を呼び出すシステムコールラッパー(glibc) exit_group: プログラムを終了させるLinuxのシステムコール(Linux) 大きな違いは、2つありました。 1つ目は、終了時に atexit や on_exit で登録した関数が呼ばれるか。 2つ目は、バッファされた標準入出力データを終了時にフラッシュするか。 実際にどのような挙動になるのか試してみました。 #include <stdio.h> #include <stdlib.h> #include <unistd.h> void bye(void) // mainが終了したら呼び出される { printf("good bye\n"); } int ma

                                                              [C言語] exit()と_exit()の違い - Qiita
                                                            • 初心者がC言語を習得できる学習方法とは?基礎を理解して効率よく勉強しよう! - paiza times

                                                              C言語はプログラミング言語の先祖であり、現在でも習得する価値の高い言語として重宝されています。しかし、プログラミング経験のない初心者の方は、C言語の習得に向けてどのように勉強すればよいか迷ってしまうでしょう。そこで今回は、初心者がC言語を効率よく習得できる学習方法について解説していきます。 初心者が気になるC言語とは? C言語はプログラミング言語の王 C言語は処理速度が速く、環境にも依存しない 初心者が知っておきたいC言語の学習をスタートするメリット メリット1.関連する言語が習得しやすくなる メリット2.初心者でもさまざまなプログラムを作れる 初心者がC言語を学習する方法①:オンラインWebサイト オンラインWebサイト(1)ドットインストール オンラインWebサイト(2)paizaラーニング オンラインWebサイト(3)苦しんで覚えるC言語 初心者がC言語を学習する方法②:入門書 初心

                                                                初心者がC言語を習得できる学習方法とは?基礎を理解して効率よく勉強しよう! - paiza times
                                                              • C言語プログラミング能力認定解答速報 - 解答速報2024掲示板2ch

                                                                C言語プログラミング能力認定解答速報は以下のC言語プログラミング能力認定解答速報掲示板をご利用ください。 まず、今回の傾向とこれからの流れについて見ていきたいと思います。 特に、1個人があたかも正解のように自分の答案をC言語プログラミング能力認定解答速報として晒しているケースは注意が必要です。 そもそもC言語プログラミング能力認定解答速報はあるのか、どこにあるのか、それは正しいのか、本当に早いのかという様々な問題を抱えております(解答解説)。 大概の場合、主催団体のホームページに掲載されますので、それを待つということになります。メジャーな試験では各種予備校がこぞって解答速報を即日発行するケースもあります。最近では受講者サービスとして、対象試験が増える傾向にあります。今回の試験についてもそうなるといいですね。そんな中、どうしてもC言語プログラミング能力認定解答速報を知りたい場合は、こちらの私

                                                                  C言語プログラミング能力認定解答速報 - 解答速報2024掲示板2ch
                                                                • C言語のポインタを含む複雑な宣言を解読

                                                                  C言語の複雑な宣言の解読方法 C言語ポインタ完全制覇のp144「Cの宣言を解読する」という章で、C言語の複雑な宣言を解読する方法が、ずばり分かりやすく説明してあります。以下、引用&要約。英語で解読すると分かりやすいので、英語で考えること推奨です。 1. 識別子に着目し、英語で読む 2. 優先順位:識別子に近い方から次の優先順位に従って派生型(配列、関数、ポインタ)を解釈する。 1) 宣言をまとめる括弧 2) 配列の []、関数の () 3) ポインタを意味する * 3. 派生型の解釈を、pointer to, array of, function returning のように to, of, returning で連結する 4. 最後に型指定子(左端のintやdoubleなど)を追加する

                                                                    C言語のポインタを含む複雑な宣言を解読
                                                                  • C言語の色々なデバッグ方法 - Qiita

                                                                    こんにちは。42 Tokyo Advent Calendar 2022の3日目を担当致します、42 Tokyo在校生の者です。 Overview C言語で開発する際のデバッグ方法について纏めます。 2022/12/03(土)迄にミニマムで公開し、その後、随時加筆予定です。 TOC Overview Introduction Environment Methods dprintf leaks GCC GDB LLDB Valgrind IDE Editorial notes References Introduction 42 Tokyoでは、まずUNIX Programmingを学びます。UNIX OSは主にC言語で開発されていますので、課題の大半もC言語を使用するものです(因みにUNIX互換OSを目指して開発され、多数の派生版があるLinuxも、やはり主にC言語で開発されています)。 カ

                                                                      C言語の色々なデバッグ方法 - Qiita
                                                                    • C 言語で文字列の一部を取得

                                                                      関数 strncpy を使って C 言語の文字列の一部を取得する カスタム関数を使って C 言語で文字列の一部を取得する この記事では、C 言語で文字列の一部を取得する方法について複数の方法を紹介します。 関数 strncpy を使って C 言語の文字列の一部を取得する strncpy は、<string.h> ヘッダファイルで定義されている C 言語の文字列ライブラリ関数の一部です。この関数は元の文字列から指定されたバイト数のバイトをコピー先にコピーします。strncpy は、コピー先の char*、コピー元のポインタ、コピーするバイト数を表す整数の 3つのパラメータを取ります。指定されたバイト数がソース文字列に含まれるバイト数を超える場合は、追加のヌルバイトが宛先に格納されます。 関数 strncpy はコピー先の文字列へのポインタを返すので、この呼び出しを printf 文に連鎖させ

                                                                        C 言語で文字列の一部を取得
                                                                      • コンパイラの作り方 Cで書かれたC言語コンパイラ(return文対応版)をC#で書き直してみる - Qiita

                                                                        はじめに トランスコンパイラ試作品の内部設計に進行していますが、これがけっこう難航しておりまして、こっちはあまり進捗がないまま記事の未投稿が続くのもなんですので、とりあえずコンパイラ作ったことないので、ネット上でよくヒットして前半部分は説明もたいへん詳しい低レイヤを知りたい人のためのCコンパイラ作成入門の前半部分をC#で書いてみていますの続きです。また、日本語ロジック仕様記述言語 Re:Mindによるロジック仕様も引き続き併記しています。 この記事内容の作業目的 言語処理系の基礎知識、基礎技能として、トークンや抽象構文木、パーサーといった基礎概念の獲得。参考サイトの9ccの「ステップ11:return文」に相当します。9ccは後半にいくほど解釈可能範囲を広げるインクリメンタル実装のため、段階的に対応構文が増えていきます。 この記事内容の作業環境 Windows11 Pro 22H2 Win

                                                                          コンパイラの作り方 Cで書かれたC言語コンパイラ(return文対応版)をC#で書き直してみる - Qiita
                                                                        • ソケット通信とは?【C言語】

                                                                          ソケット通信とはソケットを用いた通信のこと。 「通信」とは非常に身近なものであり、今読んでいただいているこのページも通信によって閲覧している。 さまざまな物が通信でつながることで、便利な機能がたくさん実現されており、これらの通信には「ソケット通信」で行われているケースが多い。 ソケットを使用することで、異なるマシン間(もしくは同一のマシン上)の異なるプロセス間で通信を可能にする。 そもそもソケットとは? ソケットっていうのは通信端点のこと。 いいかえると、アプリとアプリ(プログラムとプログラム)の通信の出入り口。 ソケット通信を行うには、まずはアプリやプログラム内で「ソケット」を作成。 そして、それを他のアプリやプログラムのソケットに接続してデータのやり取りを行う。 なので、まずはこのソケットを作成する必要がある。 C言語ではこのソケットを、socket 関数により作成することが可能だ。

                                                                            ソケット通信とは?【C言語】
                                                                          • C言語からRustの関数をコールする方法(連載23)|YN

                                                                            前回、solidクレート側で、SOLID OSの持つC/C++関数を、Rustからコールする方法について見てみました。 今回はその逆で、C/C++言語からRustの関数をコールする方法について考えていきたいと思います。 個人的にはこちらの方がよくあるケースではないかなぁと思うのですが、、、どうでしょうか。一部分だけRust化するイメージです。 では、行ってみましょう! 1.ワークスペース作成過去記事を参考にして、ワークスペースを作ります。 https://note.com/kmc715/n/n3b503a948df5?magazine_key=m76fc246deaa1 「1.1 Rustのライブラリをリンクする元のワークスペースを作る」 と、 「1.2 RustのLibraryプロジェクトをワークスペースに追加する」 が参考になります。 ※メインプロジェクトのリンカ設定で、 追加のライブ

                                                                              C言語からRustの関数をコールする方法(連載23)|YN
                                                                            • 【C言語】自作シェルの作り方を学べるおすすめWebサイト

                                                                              本記事の信頼性 リアルタイムシステムの研究歴12年. 東大教員の時に,英語でOS(Linuxカーネル)の授業. 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発. プログラミング歴15年以上,習得している言語: C/C++,Python,Solidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Assembler (x64,ARM). 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開. 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happin

                                                                                【C言語】自作シェルの作り方を学べるおすすめWebサイト
                                                                              • C言語で変数を書いてみる | インフラエンジニアの技術LOG

                                                                                前回は簡単なプログラミングを書きました。 「#include<stdio.h>」を宣言することで、入出力ファイルを読み込み、「int main(void)」と書かれた場所から命令を実行していくってな感じです。 詳しくは、ここをご参照ください。 その続きで今回は『変数』についてまとめます。 変数って言葉を聞いただけでも結構、抵抗感満載ですが、要は「データの入れ物」ってことみたいです。 変数とは何かと言うこととルールについて 上記でも言った通り、変数は「入れ物」ってことみたいです。 変数を宣言することでメモリ上の領域に「入れ物」を用意することができることと、宣言した変数には、値を入れて「記憶」させることができるみたいです。 つか、よくわかんないんで実際にコマンド叩いて実行して出力結果を出しゃいいんじゃねぇのってな感じで打ちます。 #include <stdio.h> int main (voi

                                                                                  C言語で変数を書いてみる | インフラエンジニアの技術LOG
                                                                                • GPU:C言語開発環境CUDAのインストールと動作確認 | Webシステム開発/教育ソリューションのタイムインターメディア

                                                                                  CUDAをインストールしたら、GPUが動作しているかどうか、とりあえず確認しよう。 nvidia-smi というコマンドが入ったはずで、それを実行してみよう。 $ nvidia-smi Sat Mar 18 18:46:16 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 375.26 Driver Version: 375.26 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp P

                                                                                    GPU:C言語開発環境CUDAのインストールと動作確認 | Webシステム開発/教育ソリューションのタイムインターメディア