java自学 1.学习注释 (1)单行注释://注释信息; (2)多行注释:/*注释信息*/; (3)文档注释:/**注释信息*/; 2.java最基本的组成单位是类 public class “类名“{ }; 3.关键字 (1)定义:被java语言赋予了特定含义的单词; (2)特点:关键字的字母全为小写;
原文:https://www.cnblogs.com/XueQun/articles/15982151.html 一、数据结构中的栈和堆 虽说我们经常把堆栈放在一起称呼,但是不可否认的是,堆栈实际上是两种数据结构:堆和栈。 堆和栈都是一种数据项按序排列的数据结构。 栈:就像装数据的桶或箱子,它是一种具有后进先出性质的数据结构
用的越多,不懂的就越多 why? java异常体系结构如下 Throwable类:所有的异常类,都直接或者间接的继承这个类。三个重要的方法: 堆栈跟踪是方法调用过程的轨迹,它包含了程序执行过程中方法调用的顺序和所在源代码行号。 堆栈跟踪信息从下往上,是方法调用的顺序。 Throwable类的两个
程序被翻译成其它不同的格式 以main.c为例,程序文本如下 # include "stdio.h" int main() { printf("Hello World!\n"); return 0; } 在linux系统上,从源文件到目标文件的转化是由编译器驱动程序完成的: gcc -o main.c main gcc编译器驱动程序读取源程序文件main.c,并且将
1.运行窗口中文乱码 1、工具—编译选项2、在第一个框中填入 -fexec-charset=gbk3、勾选“编译器加入以下命令”4、重新编译一次以后运行。 2.代码编写窗口不显示中文 (中文在光标移开后不显示) 工具——>编辑器属性——>显示,取消复选框的勾选即可
根文件系统制作 buildroot: https://buildroot.org/ (官方主页 下载地址 和文档手册) 可以根据手册找到所依赖的库 下载后用tar -xvf 解压 #注意 交叉编译工具链的版本一定要和 buildroot匹配 #可以下载正点原子的资料 匹配度很高(本文使用buildroot-2020.02.8.tar.bz2与正点原子
问题:在头文件中使用预编译时,会出现无效的现象 在a.h文件中定义了宏AA_TEST,如下所示 #ifndef __A_H #define __A_H #define AA_TEST #endif 在b.h文件中定义了宏BB_TEST,如下所示 #ifndef __B_H #define __B_H #include "a.h" #if defined(AA_TEST) #define BB_TEST #endif #
1、 在编译器中向导组态=>运动,储存器分配需要注意地址重叠,如果此地址在程序中被使用会发生不可预料的异常,建议在组态前先从交叉引用中查询空白未使用地址再输入。 2、如果地址重叠,无论是先确定组态地址后被占用,还是先确定变量地址后被组态占用,编译时均不会报错 3、软件版本V02
Prefer 32-bit 选中的话,意味着应用程序在32位和64位机器,都以32位应用程序运行 不选中,32位机器,以32位应用程序运行,64位机器,以64位应用程序运行 PlatformTarget 这个是一个编译时选项 x86 程序集编译成能在64位CLR环境下执行 x64 程序集编译成能在32位CLR环境下执行 AnyCPU 把程
AVSI 是我从大一开始制作的编译器系列。最近又完善了一下,出了个第二代,还写了一个包管理器叫 cart,定位类似于 rust 的 cargo。目前基本能用了。 组成 项目由三个部分组成: avsi: 编译器本体 cart: 包管理器 libavsi: 标准库 包管理器的命名过程挺有趣的,一开始想命名为 min
目录C++函数重载机制导致函数名变化 C++函数重载机制导致函数名变化 当我们在一个C语言头文件test.h中声明了一个C函数show(),而在C++的源文件中导入该头文件并使用show时,会报错,链接时错误,函数名无法解析之类的。这是因为C++中会改变编译器会适当改变函数名,因此C中的函数名在C++编
NVCC编译器选项 文档地址:https://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html 1、在cu文件中,nvcc会定义__CUDACC__这个宏,但是cpp文件中不会。 2、 3、
递推学习笔记: 一、什么是递推 递推算法是一种较为简单的算法,即通过已知条件,利用特定关系得出中间推论,直至得到结果的算法。递推算法分为顺推和逆推两种。 二、典型例题 1.(正推)P1720 月落乌啼算钱(斐波那契数列)洛谷传送门 题目背景 (本道题目木有隐藏
一开始是jdk和tomcat不兼容,于是降jdk版本,之后发现的这个问题。 先查看项目模块 SDK与语言级别设置是否有误。 然后检查模块中,关于依赖是否进行了修改 最后检查设置中java编译器中项目和目标的字节码版本
编译器的两点优化 第一点 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char)。1.如果没有超过左侧的范围,编译器补上强转。2.如果右侧超过了左侧范围,那么直接编译器报错。 //右侧确实是一个int数字,但
1.取消 #define 的作用; 比如: #define MAX 10 std::cout << "MAX = " << MAX << std::endl; #undef MAX std::cout << "MAX_LATTER = " << MAX + 1 << std::endl; 编译器将对第二个cout 报错,原因就是 #undef
__func__是预置在编译器中的宏,并不包含于任何头文件,所以直接调用即可,不需要做任何其它操作。 __func__是一个字符串,值为调用__func__函数的函数名
一、下载安装文件 1、打开rust官网,rust-lang.org,点击菜单【install】,下载rustup-init.exe文件,然后 二、运行安装文件 1.启动rust安装器,输入y回车 2. 如果安装vc++编译,一路默认设置就好 vc++编译安装,请参考文章:https://www.cnblogs.com/qumogu/p/16411908.html 3.使用
3092 错误:匿名联合仅在--gnu模式下支持,或者在使用#pragma anon_unions时启用 解决方法1: 在arm编译器中会定义 __CC_ARM ,其功能是启用对匿名结构和联合的支持 添加代码: #if defined ( __CC_ARM ) #pragma anon_unions #endif 或者直接添加: #pragma anon_unions 68-D 编译器默认
TypeScript 是一种由微软开发的自由和开源的编程语言,是一种非常受欢迎的 JavaScript 语言扩展,它也是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。它在现有的 JavaScript 语法之上加入了一层类型层,而这一层即使被删除,也丝毫不会影响
关于基态通过对于虚函数的使用,其实质就是对于其派生态所定义的函数的使用。对于 father * me = new child (基态指针->派生态指针) but no 即(派生类指针不能指向基态); 就是实则 me 始终是基态 ,它的访问范围只与它的定义有关,与它所指向的目标无关。(使代码的可替换性很高
最近在研究gnu和msvc在win32平台上的应用,查了资料也请教了一下别人。现结论如下: 1.msvc理所当然在win平台上支持最广泛:winAPI(sdk),MFC封装winAPI库及其他VC++功能。 2.gnu在win平台上缺了MFC封装winAPI库,需要学习winAPI。 因为winAPI是用c语言写的,c语言是通用的,所有编译器编译的d
第一步 下载编译器 vscode是一个编辑器,不像Dev-C++是可以一键编译的,所以我们需要另外下载编译器。在windows命令行中依次输入以下命令: Set-ExecutionPolicy RemoteSigned -scope CurrentUser iwr -useb get.scoop.sh | iex 等待几秒钟就下载好了scoop,这是一个非常轻量的软件包管
目录内联函数引入C++用inline关键字来解决宏函数缺陷的问题inline是一种建议 内联函数引入 C中对于一些频繁计算的短代码,通常写成宏来避免函数调用开销,但是再C++中会带来一个问题,即: 预处理器不能访问类的成员,因此宏不能作为类的成员函数。 c++中内联函数就用用来解决宏函数的缺陷
我们一旦定义一个数组,我们就有了很多这种类型的变量 数组的元素 每个元素都是那种类型的变量 索引下标是从0开始的 grades[0] grades[99] grades[5] 所以下标一定是整数 有效的下标 最小的下标是0,最大的下标是数组元素个数-1 可是编译器不会检查看你是否用了有效