[Relearning C/Cpp] Initialization and Functions
1 初始化
对象的声明可以通过初始化的过程获得初始值。主要就是见识一下C/Cpp里面几种初始化的形式,免得大惊小怪
1 | // C语言的初始化还好,怎么着都得有个 = |
[Relearning C/Cpp] Array and Pointer
数组和指针一般不能分开,尤其是C语言里面,让人又爱又恨的东西..而一谈到这俩玩意就得画图..
1 数组
对数组下定义,抱歉,我不会。但是我有词典,a way of organizing and storing related data in a computer memory。这么一看就清晰多了
元素类型为char的数组可以如下声明
int c[6]; // 可以存6个整数的数组
在声明中[]
表示xxx的数组,所有数组下标都是从0开始,计算机中很多东西都是从0开始,为什么?搜索一下吧。数组的大小,就是那个6,必须得是个常量表达式,这么看,数组一旦定义好了大小就定下来了呀
数组名也是标识符,也要符合规则,不能和其他变量重名
数组初始化的时候可以部分初始化,也可以整体初始化;赋值的时候不能整体赋值,只能单个元素得赋值(数组拷贝,那个不算)
Build a leanote server
Build FreeRADIUS server based on Ubuntu18
参考:
https://www.cnblogs.com/opsprobe/p/9420502.html
https://blog.csdn.net/lassewang/article/details/9159543
0 RADIUS
RADIUS:(Remote Authentication Dial In User Service)中文名为远程用户拨号认证服务,简称RADIUS,是目前应用最广泛的AAA协议(认证、授权和计费)
图中Device(例如交换机)向远程接入用户提供接入及与RADIUS服务器交互的服务。RADIUS服务器上则存储用户的身份信息、授权信息以及访问记录,对用户进行认证、授权和计费服务
认证过程如下
(1)客户端向接入设备发送一个EAPoL-Start报文,开始802.1x认证接入;
(2)接入设备向客户端发送EAP-Request/Identity报文,要求客户端将用户名送上来;
[Relearning C/Cpp] Statements and Preprocessor
突然发现两个不错的网址
https://en.cppreference.com/w/cpp/language
https://en.cppreference.com/w/c/language
书籍千千万,不如这个定义来得直接啊
Quickly build gitbook
0 start
感觉最近看的不少东西都是用gitbook写的,看起来也确实怪舒服的,举个例子:https://lingcoder.github.io/OnJava8/#/sidebar,既能当博客又能当Wiki,于是我准备自己搭建一个。参考网上的步骤:
文档编写采用统一标准,都用Markdown格式的,最后可以用gitbook自动生成静态网页;
分配好各阶段(版本)相关责任人编写的文档,待文档编写完成后统一上传到git;
jenkins负责拉取正式版本(release开头)的文档,用gitbook编译后,同步到云端文档服务器
云端服务器制作一个入口页面,页面里面可以指引各个版本文档;http服务用nginx,指引到这个页面;
其中第三步我觉得没必要用Jenkins,直接设置一个定时任务就好了。。其实搭建一个从零开始搭建一个完整Gitbook还是比较麻烦的,详情参考下方的参考文档。我既然说了快速,那必然是简单而又傻瓜式的搭建了..Let’s go!
[Relearning C/Cpp] Operators and Expressions
[Relearning C/Cpp] Foundation Type
How to use JNI
1 JNI
JNI(Java Native Interface),提供了若干API实现了Java和其他语言(主要是C/C++)的通信。简单来说就是Java想要调用C/C++的接口必须遵循JNI的规范
牵涉到一个很重要的头文件jni.h
,这个头文件的位置:\jdk1.8.0_211\include\jni.h
,如果是Linux,或许是/usr/lib/jvm/java-8-openjdk-amd64/include/jni.h
。这个头文件定义了数据类型,JNIInterface(定义了很多函数指针,就是一些接口)
那么为什么要有JNI这个东西,Java虽说是与平台无关的,但是支撑它的虚拟机不是啊,那玩意还得用native语言来完成,这不就是一个理由了
1.1 hello world
- 创建一个
JniHello.java
, 并声明一个native函数sayHello()