コグノスケ


link 未来から過去へ表示  link 過去から未来へ表示(*)

link もっと前
2017年4月19日 >>> 2017年4月28日
link もっと後

2017年4月19日

includeディレクティブの謎の文法

目次: C言語とlibc

C/C++ 言語のヘッダをインクルードする#includeディレクティブには2つの指定方法があります。1つは #include <cstdio> のように山括弧で囲う方法、もう1つは #include "cstdio" のように二重引用符で囲う方法です。

このうち山括弧で囲う方は少し変わった文法規則になっており、ファイル名に '>' や改行を指定できない特徴があります。詳細は下記の通りです。

#include <...> の文法規則
N3797 Working Draft, Standard for Programming Language C++ より

----

control-line:
  # include pp-tokens new-line
  (...略...)

pp-tokens:
  preprocessing-token
  pp-tokens preprocessing-token

preprocessing-token:
  header-name    ★これ
  identifier
  pp-number
  character-literal
  user-defined-character-literal
  string-literal
  user-defined-string-literal
  preprocessing-op-or-punc
  each non-white-space character that cannot be one of the above

header-name:
  < h-char-sequence >    ★これ
  " q-char-sequence "

h-char-sequence:
  h-char
  h-char-sequence h-char

h-char:
  any member of the source character set except new-line and >

注目すべきは文字列リテラルと異なり、エスケープ規則がないことです。エスケープしようとして \> と書いても「バックスラッシュと山括弧」と認識されてしまい '>' を指定したことになりません。

従って、もしヘッダのファイル名に '>' が含まれていると、#include "..." ではインクルードできるのに、#include <...> ではインクルードできない、変なヘッダファイルになってしまいます。C/C++ 言語の制約と言えば制約ですけど、そんな変なヘッダ名を付ける人は居ないので、ほぼ実害はありません。

規格書を見ると、header-nameは #include専用と言って良いほどの特殊な文法です。何気なく使っている #includeの意外な一面を見た気がします。

編集者:すずき(2023/02/04 20:39)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年4月22日

交換してもダメだった

先日(2017年4月18日の日記参照)の続きです。

AmazonからASRock J4205-ITXの交換品が届きましたが、やっぱり2枚差しだと起動しません。1枚差しだと起動します。違いというと、交換前のマザーボードはDDR Aスロットしか使えませんでしたが、交換後のボードはDDR Bスロットでも起動することくらいです。だから何って話ですが。

Ubuntu 16.10は起動しましたが、まともに動いてなさそうです。起動に異常に時間が掛かるのは相変わらずで、起動したらしたでLow Graphics Modeとかいうモードになってしまい、GUIが出ません。

メモリはノートPCに差したら起動するから、メモリは壊れていません。

どうも動き的にはメモリの相性問題っぽいんですよね。何にせよ公式サイトのメモリサポート一覧表に動作しないメモリ(Crusial CT102464BF186D)を載せるのは止めてほしいです。騙されたじゃないですか……。

このマザーボードは何かがおかしい

設定を固定してDDR3-1600 x 2にすると起動しますが、どうやってもDDR3-1866 x 2では動きません。ただ前回もDDR3-1600で動いているように見えて、突然死したり、数回の再起動で再起不能になったり、かなりメチャクチャでしたので、多少動作した程度では全く信用できません。

マザーボードが2枚とも初期不良は確率的にほぼあり得ないと思いますので、このマザーボードはちゃんと検証をしていないか、設計がおかしいのでしょう。もう諦めます……。

余ったメモリはノートPCに使うことにしました。2枚とも元気に動作しています。正直4GBだと足りないと思っていたところなので、16GBになってとても快適です。

メモ: 技術系の話はFacebookから転記しておくことにした。追記もした。

編集者:すずき(2017/04/23 03:11)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年4月24日

Windows 10遅くない?

目次: Windows

Windows 10の起動が遅いです。

遅くなる一番の原因は、ソースネクスト スーパーセキュリティZEROのせいだと思うんです…。こやつは起動が遅いし、メモリも常時200MB以上使うし、アップデートも激重です。

セキュリティZEROは好きで入れているので仕方ないとしても、起動時は各種サービスが一気に起動するためか、数分以上HDDの利用率が100% に張り付いてしまい、その間PCがスローダウンして、使い物になりません。

とりあえず原因の一つと思われる、タスクスケジューラの [Microsoft] - [Windows] - [Windows Error Reporting] - QueueReportingを止めました。

他にも何やらガチャガチャ動いているのですが、どのプロセスがどのタスクに紐付くのか全然わかりません。うーん。

メモ: 技術系の話はFacebookから転記しておくことにした。

編集者:すずき(2023/09/24 13:57)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2017年4月27日

メルカリ祭り

メルカリ、「パチンコの特殊景品」も削除対象に 現金、Suicaに続き - ITmedia NEWSを読んで。

カード枠の現金化はよほど需要があるらしく、現金、Suica、パチンコの特殊景品と、次々に考えられて端から見ていると面白いです(金券の出品は元から禁止)。

メルカリはこれらの出品を良識によって規制していますが、パチンコの三店方式は警察公認のマネーロンダリング(追記:ロンダリングじゃなくて、賭博ですね)なので、悪意を持ってやられると取り締まる術がありません。日本の闇ですね…。

メモ: 技術系の話はFacebookから転記しておくことにした。追記もした。

編集者:すずき(2017/04/30 17:21)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2017年4月19日 >>> 2017年4月28日
link もっと後

管理用メニュー

link 記事を新規作成

<2017>
<<<04>>>
------1
2345678
9101112131415
16171819202122
23242526272829
30------

最近のコメント5件

  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」
  • link 24年1月24日
    KKKさん (02/19 02:30)
    「追伸です。\nネットで調べたらマイクロソ...」
  • link 24年1月24日
    KKKさん (02/19 02:25)
    「私もエラーで困ってます\n手動での回復パ...」

最近の記事3件

  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月19日
    すずき (03/20 02:52)
    「[モジュラージャックの規格] 古くは電話線で、今だとEthernetで良く見かけるモジュラージャックというコネクタとレセプタク...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 03/26 03:20