- 博客(12)
- 收藏
- 关注
原创 C语言爆栈经历(一)
下面代码是用来写自己的ls -al 指令时出现的. code: void display_dir(int flag_param,char *path) { DIR *dir; struct dirent *ptr; int count=0; char filenames[256][PATH_MAX+1],temp[PATH_MAX+1]; //看这个语句,明显...
2019-01-30 13:28:45
2904
原创 XML基本知识(Day5)
1.表单提交方式<html> 使用<input:submit提交> 自己使用button写提交; 使用超链接提交 <a href="*****"?info1=111></a>来提交 2.HTML常用事件 onclick <select> onchange onfocus obblur获得焦点,失去焦点 本章代码 <!..
2019-01-13 08:54:48
301
转载 YCM(C/C++配置)
首先感谢简书大佬,由于这位大佬已经说的相当清楚了,只是他的clang是二进制包,我的系统找不到只能源码动手. 1先就是安装llvm-clang这个按照官方教程来就好,注意这里在分为两种安装方式, 一是直接二进制包,二是源码编译.(照着官方的来肯定没错) 2.确保Vim版本足够,并且支持python2/3,有的人说只能选一个我没有尝试. vim --version | grep pyth...
2018-12-27 16:13:00
4411
原创 Java与c++机制不同之处
1.Java使用的是"不可变的字符串",只能提取子串然后进行拼接. //将"Hello"变为"Help";C/C++ char greet[]="Hello"; greet[3]='p'; greet[4]='\0'; greet[5]='\0'; 但是java中的字符串实际上时一个String类型的头指针而已,而且String不仅仅只有数据元素,所以要当做内存去处理. String ...
2018-12-25 11:19:17
200
原创 C/C++对字符串常量的处理策略
#include<stdio.h> char *a="Hello"; extern void func(); int main() { char *b="Hello"; char *c="Hello1"; if(a==b) printf("a==b \n"); //两个指针指向同一块内存 else printf("a!=b \...
2018-10-29 21:59:33
1230
1
原创 extern修饰符探究
一下为源代码main.cpp fun.cpp 均放在同一个目录下.请参考头文件多重定义一起看. <main.cpp> #include <stdio.h> #include <stdlib.h> extern int a; int main() { printf("%d \n",a); return 0; } <fun.cpp>...
2018-10-29 21:30:36
201
原创 C/C++多重定义实例
main.cpp #include <stdio.h> #include <stdlib.h> #include "gh.h" int main() { printf("%d \n",a); return 0; } fun.cpp #include <stdio.h> #include "./gh.h" void fun2() { ..
2018-10-29 21:11:56
2466
原创 Linux C的可执行文件结构以及进程结构
(公共部分):代码区,BSS区,数据区. 1.代码区:存放可执行的指令.顺便规划局部变量的相关信息(??). 独有性:一份指令在内存(不管虚拟内存还是实际)中只要有一份就可以的 只读性:汇编指令包含 操作码+操作数;一般操作码是不可变的,但是操作数可以改变. 而且有不同的寻址方式. 立即数 数据包含在指令区 局部数据 运行时在栈中分配,然后在指令中引...
2018-10-29 20:56:43
371
翻译 Linkage Types---链接类型
作用:声明变量符号的"生命周期","访问空间"等. private:和一般的面向对象语言一样,只能在模块内访问,即函数以及标识符不会被外部对象引用.特别地,将代码链接到具有私有全局值的模块中可能导致根据需要重命名私有值,以避免冲突。因为符号对于模块是私有的,所以所有引用都可以被更新。这不会出现在对象文件中的任何符号表中(即对于C/C++来讲,该函数以及变量不会在*.o文件中有对应的符号表). ...
2018-10-27 23:41:10
766
翻译 LLVM高级类型-----模块(moudle)
LLVM程序的输入数据的基本转换模块是Moudle. 每个Moudle有一下的元素构成:函数,全局变量,符号表入口;以及LLVM linker(联系Moudles之间:其他模块的 全局变量,函数的前向声明,以及外部符号表入口); ; Declare the string constant as a global constant. @.str = private unnamed_addr c...
2018-10-27 22:44:56
2006
翻译 LLVM标识符命名
LLVM标识符 1.从作用域上分为:全局标识(global)和局部标识(local) 全局Pattern:[@][-a-zA-Z.][−a−zA−Z._][-a-zA-Z.][−a−zA−Z._0-9]* 局部Pattern:[%][-a-zA-Z.][−a−zA−Z._][-a-zA-Z.][−a−zA−Z._0-9]* (正则表达式表示,就不举例子了) No...
2018-10-27 22:25:50
558
翻译 LLVM概览
声明,本文是为了提升自己阅读英语文档的能力,部分使用机械翻译,有错请指出. LLVM是基于静态单赋值(SSA)的表示,它提供了类型安全、低级操作、灵活性以及干净地表示“所有”高级语言的能力。它是在LLVM编译策略的所有阶段中使用的通用代码表示。 LLVM的代码分为三种格式: 1.an in-memory compiler IR(编译器内码) 2.as an on-disk bitcode...
2018-10-27 21:11:43
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅