C++的Trigraph】的更多相关文章

??=include <stdio.h> class HelloWolrd ??< public: void Trigraph() ??< printf("Hellow Trigraph"); ??> ??>; static bool DemoBools ??(1 ??) = ??< false ??>; int main() ??< HelloWolrd* Trig = new HelloWolrd(); if (??-DemoB…
trigraph是c/c++对之前键盘无法输入一些符号而做出的补充设计,将以下字符用其他三个字符来代替 # ??= \ ??/ ^ ??' [ ??( ] ??) { ??< } ??> | ??! ~ ??- 要取消这种效果的话,字符分开输出就好了. 还有一个方法是加转义字符(c语言参考课程里的,暂时没实践,有错误请指正) #include<stdio.h> int main(){ printf("Hello World??!\n"); //输出效果为Hell…
转载自R-G-Y-CQ的新浪博客 -Wall显示所有的警告信息 -Wall选项可以打开所有类型的语法警告,以便于确定程序源代码是否是正确的,并且尽可能实现可移植性. 对Linux开发人员来讲,GCC给出的警告信息是很有价值的,它们不仅可以帮助程序员写出更加健壮的程序,而且还是跟踪和调试程序的有力工具.建议在用GCC编译源代码时始终带上-Wall选项,养成良好的习惯. -pedantic以ANSI/ISO C标准列出的所有警告 当GCC在编译不符合ANSI/ISO C语言标准的源代码时,如果在编译…
本文在参考ISO/IEC 14882:2003和cppreference.com的C++ Preprocessor的基础上,对C++预处理做一个全面的总结讲解.如果没有特殊说明,所列内容均依据C++98标准,而非特定平台相关(如VC++)的,C++11新增的特性会专门指出. 1. 简介 通常我们说C++的Build(这里没用“编译”是怕混淆)可分为4个步骤:预处理.编译.汇编.链接.预处理就是本文要详细说的宏替换.头文件包含等:编译是指对预处理后的代码进行语法和语义分析,最终得到汇编代码或接近汇…
GCC 1 NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不再更新.如果发现手册页和软件之间有所矛盾,请查对Info文件, Info文件是权威文档. 如果我们发觉本手册页的内容由于过时而导致明显的混乱和抱怨时,我们就停…
在正式进入C的语法之前,有必要对其整体外观和组成元素作一个浏览.这部分内容对大多数人是比较陌生的,但它们却是C的起点和骨架.而这些内容涉及的背景或细节又可以展开为专门的课题,这里也只是浅尝则止,说明个大概即可. 1. C程序组成 任何一个程序都首先以源文件(source file)的形式存在,它是一个普通的文本文件.C程序一般由一系列后缀为.c和.h的文件组成,前者包含了程序的执行内容,后者包含了各种声明或定义.其实文件名并不重要,这样的后缀名仅是约定俗成的习惯.但建议保持这样的风格,一是为了看…
引言: 在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能执行之类的警告. 有代码洁癖的孩子们很想消除他们, 今天就让我们来一次Fuck 警告!! 首先学会基本的语句: #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" 中间这里写出现警告的代码 #pragma clang diagnostic pop 这样就消除了方法弃用的警…
Warning Message -WCFString-literal input conversion stopped due to an input byte that does not belong to the input codeset UTF-8 -WNSObject-attribute __attribute ((NSObject)) may be put on a typedef only, attribute is ignored -Wabstract-vbase-init in…
C语言中的三字母词(trigraph) 在ANSI C标准中,定义了9个三字母词(trigraph),三字母词就是几个字符的序列,合起来表示另一个字符.三字母词使C语言环境可以在缺少一些必需字符的字符集(比如,一些非常老式的键盘上没有[]{}#\^~|)上实现.也许是由于这些字符集我们基本上用不到,所以在大多数C语言的书籍中,我们都看不到对三字母词的讲解.下图列出了9个三字母词以及它们所代表的的字符. 源代码中的"三字母词",在编译阶段会被替换为"对应的字符".对于…
C和C++ 编译器是集成的.他们都要用四个步骤中的一个或多个处理输入文件: 预处理 (preprocessing),编译(compilation),汇编(assembly)和连接(linking).源文件后缀名标识源文件的 语言,但是对编译器来说,后缀名控制着缺省设定: gcc  认为预处理后的文件(.i)是C文件,并且设定C形式的连接. g++  认为预处理后的文件(.i)是C++ 文件,并且设定C++ 形式的连接. 源文件后缀名指出语言种类以及后期的操作: .c      C源程序;预处理,…
这篇博客的内容都是记的网上的.是流水账.只是记录下来以便日后之有,避免每次重新google. #pragma除了可以用来把不同功能的代码进行分隔组织外还可以用来disable一些warnings.这在引入一些第三方带有warnings的库的时候很有用. #pragma用处:http://nshipster.com/pragma/ #Clang Diagnostics: http://nshipster.com/clang-diagnostics/ Clang warning strings和fl…
uboot顶层目录中的config.mk定义了确定了当前执行makefile所对应的源文件目录.目标文件目录,编译的程序编译.连接的选项,以及目标文件生成的规则等等.它被包含在顶层的makefile以及各个子目录的makefile中,可以说算是一个全局的makefile包含文件. ifneq ($(OBJTREE),$(SRCTREE))                         //判断目标目录和源文件目录是否一样,如果不一样下边的有效 ifeq ($(CURDIR),$(SRCTREE…
Semantic Warnings Warning Message -WCFString-literal input conversion stopped due to an input byte that does not belong to the input codeset UTF-8 -WNSObject-attribute         __attribute ((NSObject)) may be put on a typedef only, attribute is ignore…
准备复习一下之前读过的<C和指针>,主要看之前标记过的地方. 感觉像第一次看的地方再记录一下-- 1.预处理器读入源代码,根据预处理指令对其进行修改,然后将修改后的源代码交给编译器. 2.printf中使用%g打印一个浮点值(自动选择%f和%e中占宽度较小的一种),比%f常用哦根据本书--好吧之前没标记过这个. 3.三字母词trigraph sequences--完全没印象 三字母词 对应字符 ??= # ??( [ ??) ] ??< { ??> } ??/ \ ??! | ??…
Phases of translation--翻译阶段 The C++ source file is processed by the compiler as if the following phases take place, in this exact order: Phase 1 --96个basic source character set The individual bytes of the source code file are mapped(in implementation…
原文地址:http://clang.llvm.org/docs/InternalsManual.html 译者:史宁宁(snsn1984) "Clang"C语言前端内部手册 简介 这个文档描述了比较重要的API中的一部分API,还表述了Clang C语言前端中的一些内部设计想法.这个文档的目的是既把握住高层次的信息的同时也对这些高层次的信息背后的设计思路进行一些介绍.这篇文档面向的是打算hacking(这个词的具体含义在这里实在不好把握,感觉英文更容易表达具体含义)Clang的人,而不…
Semantic Warnings Warning Message -WCFString-literal input conversion stopped due to an input byte that does not belong to the input codeset UTF-8 -WNSObject-attribute __attribute ((NSObject)) may be put on a typedef only, attribute is ignored -Wabst…
conversion from %s to %s not supported by iconv”iconv 不支持从 %s 到 %s 的转换” iconv_open”iconv_open” no iconv implementation, cannot convert from %s to %s”没有 iconv 的实现,无法从 %s 转换到 %s” character 0x%lx is not in the basic source character set\n”字符 0x%lx 不在基本源…
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" 这里写出现警告的代码 #pragma clang diagnostic pop 这样就消除了方法弃用的警告! 同理, 大家可以在下边搜索到对应的警告, 这样 就可以把前边的字串填入上边的ignored的后边, 然后阔住你的代码, 就OK了 源网址 原文对应的警告: Semantic Warnings War…
一般在编译代码时会有相当多的警告信息,尤其当我们使用了-Wall选项的时候.-Wall绝不是像其字面意思一样打开所有警告.不过它打开的警告也相当多了.对于一些我们已知"无害"但仍然打印出来挤占可怜的控制台空间的警告,我们当然可以将其"屏蔽"掉. 就拿以下代码来说: #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <unistd.h>…
问题 A: 我不会做 时间限制: 1 Sec  内存限制: 128 MB 题目描述 众所周知,duxing201606就是plw. 然而已经9102年了,plw仍旧没有npy.plw非常难过,于是他打开了他熟悉的zhihu.com/search 想找到原因 看了高赞回答后,plw感觉这辈子脱单渺茫,于是去找某C姓半仙算了一卦自己未来的npy. 只见那C姓半仙拿出一瓶5L的肥宅快乐水,且向青空径直撒了一把M记薯条,嘴里念念有词,霎时间,龙吟虎啸,鹤唳莺鸣,肥宅欢乐水便全部转移到了plw面前的铜盂中…
课后的几个问题: 1) int x/*blah blah*/y; 会有什么问题? 答:编译器报错,语句中不应该有多行注释 单行注释也应该放到语句后面或者独自占一行. 2)打出下面一行字符串(包括引号)会出现什么问题. "Blunder??!??" 答:在Xcode中不会出现问题.但是由于三字母词(trigrph)标准的存在.如果直接用编译命令 cc 则会出现以下警告: $cc main.c main.c:21:22: warning: trigraph ignored [-Wtrigr…
clang -fobjc-arc -framework Foundation helloworld.m -o helloworld.out OVERVIEW: clang LLVM compiler USAGE: clang [options] <inputs> OPTIONS: -### Print (but do not run) the commands to run for this compilation --analyze Run the static analyzer -arcm…
[gcc warnings] -Wtrigraph warnings 背景 三字符组(trigraph)与双字符组(Digraph)是程序设计语言(如C语言)中3个或者2个字符的序列,在编译器预扫描源程序时被替换为单个字符.以解决某些键盘不能输入某些编程必须的字符问题. 三字符组 为解决上述的C语言源代码输入问题,C语言标准规定预处理器(C preprocessor)在扫描处理C语言源文件时,替换下述的3字符出现为1个字符 三字符组 替换为 ??= # ??/ \ ??' ^ ??( [ ??)…
ns2--tcp-full.cc /* -*- Mode:C++; c-basic-offset:8; tab-width:8; indent-tabs-mode:t -*- */ /* * Copyright (c) Intel Corporation 2001. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this…
GCC 中文手册 作者:徐明 GCC Section: GNU Tools (1) Updated: 2003/12/05 Index Return to Main Contents ------------------------------------------------------------------------ -------- NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]..…
在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能运行之类的警告. 有代码洁癖的孩子们非常想消除他们, 今天就让我们来一次Fuck 警告.! 首先学会主要的语句 #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" 这里写出现警告的代码 #pragma clang diagnostic pop 这样就消除了方法弃用的警告. 同理,…
GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GNU工程的C和C++编译器(egcs-1.1.2) 总览(SYNOPSIS) gcc[option|filename ]... g++[option|filename ]... 警告(WARNING) 本手册页内容摘自GNU C编译器的完整文档,仅限于解释选项的含义. 除非有人自愿维护,否则本手册页不…
预处理器选项(Preprocessor Option) 下列选项针对C预处理器,预处理器用在正式编译以前,对C 源文件进行某种处理. 如果指定了`-E'选项, GCC只进行预处理工作.下面的某些选项必须和`-E'选项一起才 有意义,因为他们的输出结果不能用于编译. -include file 在处理常规输入文件之前,首先处理文件file,其结果是,文件file的内容先得到编译. 命令行上任何`-D'和`-U'选项永远在`-include file'之前处理, 无论他们在命令行上的顺序如何.然而`…
总览 (SYNOPSIS) gcc [ option | filename ]... g++ [ option | filename ]... 警告 (WARNING) 本手册页 内容 摘自 GNU C 编译器 的 完整文档, 仅限于 解释 选项 的 含义. 除非 有人 自愿 维护, 否则 本手册页 不再 更新. 如果 发现 手册页 和 软件之间 有所矛盾, 请 查对 Info 文件, Info 文件 是 权威 文档. 如果 我们 发觉 本手册页 的 内容 由于 过时 而 导致 明显 的 混乱…