summaryrefslogtreecommitdiff
path: root/content/digarden/pages/20210409071351-c.org
diff options
context:
space:
mode:
Diffstat (limited to 'content/digarden/pages/20210409071351-c.org')
-rw-r--r--content/digarden/pages/20210409071351-c.org54
1 files changed, 54 insertions, 0 deletions
diff --git a/content/digarden/pages/20210409071351-c.org b/content/digarden/pages/20210409071351-c.org
new file mode 100644
index 0000000..c0adc52
--- /dev/null
+++ b/content/digarden/pages/20210409071351-c.org
@@ -0,0 +1,54 @@
+:PROPERTIES:
+:ID: 40c44577-6cd7-4eac-aac7-288a0537b7e9
+:END:
+#+title: C
+
+* C
+[[https://bell-labs.com/usr/dmr/www/chist.html][История разработки языка C]]
+** Стандарт C 2010:
+https://port70.net/~nsz/c/c11/n1570.html
+** Основные реализации:
+- [[id:28f71607-81c7-42b4-9968-d22de5adba55][GCC]]
+- [[id:ecfebd9f-7692-4d8a-98a5-cd35c3d38740][Clang]] (LLVM)
+** Отличия между реализациями GCC и Clang LLVM:
+https://en.terminalroot.com.br/gcc-vs-llvm-which-is-the-best-compiler/
+*** Количество поддерживаемых платформ
+Architectures Supported by GCC:
+Alpha, ARM, AVR, Blackfin, Epiphany (GCC 4.8), H8 / 300, HC12, IA-32
+(x86), IA-64 (Intel Itanium), MIPS, Motorola 68000, PA-RISC, PDP-11,
+PowerPC, R8C / M16C / M32C, SPARC, SPU, SuperH, System / 390 / zSeries,
+VAX, x86-64, 68HC11, A29K, CR16, C6x, D30V, DSP16xx, ETRAX CRIS, FR-30,
+FR-V, Intel i960, IP2000, M32R, MCORE, MIL-STD-1750A, MMIX, MN10200,
+MN10300, Motorola 88000, NS32K, IBM ROMP, RL78, Stormy16, V850, Xtensa,
+Cortus APS3, ARC, AVR32, C166, D10V, EISC, eSi -RISC, Hexagon,
+LatticeMico32, LatticeMico8, MeP, MicroBlaze, Motorola 6809, MSP430, NEC
+SX architecture, Nios II and Nios, OpenRISC, PDP-10, PIC24 / dsPIC,
+PIC32, Propeller, RISC-V, Saturn (HP48XGCC), System / 370, TIGCC (m68k
+variant), TriCore, Z8000 and ZPU.
+
+Architectures Supported by LLVM:
+X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU,
+MIPS, MSP430, SystemZ, WebAssembly, and XCore.
+*** API для работы
+- У LLVM всё лучше со статическим анализом. GCC более highly coupled.
+- У LLVM лучше с выводом ошибок
+** Утилиты разработки (помимо компилятора):
+- [[id:fe849377-d338-4347-b34f-3fa9a70c3e35][Make]]
+- [[id:19992062-adc7-48e4-9f36-f630c92e7e70][GDB]]
+- [[id:fdc70d71-d0a9-413b-a368-358995cb56e3][Valgrind]]
+** Статьи
+- [[https://habr.com/ru/company/ruvds/blog/562530/][Хабр: Почему я всё ещё люблю C, но при этом терпеть не могу C++?]]
+- [[https://beej.us/guide/bgc/html/split/hello-world.html][Beej's C programming Guide]]
+** Материалы для изучения:
+- [[https://fpl.cs.depaul.edu/jriely/373/extras/ctut.pdf][The GNU C Programming Tutorial]]
+- [[http://mirror.yongbok.net/nongnu/c-prog-book/learning_gnu_c.html][Learning GNU C]]
+- [[https://www.gnu.org/software/libc/manual/html_mono/libc.html][GNU C Library]]
+- [[https://w96k.dev/public/doc/gnu-c/][GNU C Manual]]
+- https://www.memorymanagement.org/index.html
+** Как узнать код возврата процесса
+#+begin_src bash
+ echo $?
+#+end_src
+
+#+RESULTS:
+: 0 \ No newline at end of file