Skip to main content

2 posts tagged with "clang"

View All Tags

· One min read

常量

//习惯大写
#define MAX 10
#define STING "hello world\n"
//习惯小写
const int a=10;
const char *str = "hello c";

字符串

printf("%p\n",&a);//显示内存地址
printf("%c\n",&a);//字符
printf("%o\n",&a);//八进制
printf("%x\n",&a);//十六进制abcdef
printf("%X\n",&a);//十六进制ABCDEF

char c = 'a';
sizeof(c);//大小1
char c = '\a';//报警
char c = '\b';//退格
char c = '\n';//换行
char c = '\r';//回车

浮点

float a;//sizeof=4 2.000000
double b;//sizeof=4
long double c;//sizeof=8

类型限定

const a;
volatile int a;//a=a+1;a=a+2;a=a+3; 不合并成 a=a+6 变量可能在cpu指令意外的地方改变,编译器不要去优化
register int a;//变量不在内存中,在寄存器中

method

system

#include <stdlib.h>

int main(){
system("ls -l");
return 0;
}

· One min read

doc

install

# https://releases.llvm.org/download.html

# windows
winget.exe install LLVM.LLVM
# LIBCLANG_PATH=D:\programs\LLVM\bin

# Debian-based Linuxes
apt install llvm-dev libclang-dev clang

# mac
brew install llvm
port install clang

命令

### -E 预编译
`gcc -E -o a.e a.c``/usr/include/stdio.h`的内容`include`过来,并`删除注释`
### -S 汇编
`gcc -S -o a.s a.c` `c`转化成`汇编`
### -c 编译
`gcc -c -o a.o a.s` `汇编`转化成`二进制机器指令`
### 链接 没参数
`gcc -o a a.o`

## 快速生成
rm -f a.out;
cc a.c;
./a.out;

`gcc a.c` = `gcc -o a a.c`