C

1. C   c

ID: 5479d877-2bd1-41d9-8409-1ff0436fcc59

[2025-01-16 Thu 22:31] C reference - cppreference.com [2025-03-03 Mon 20:11] << Objective-C

C23 - cppreference.com

// gcc -O0 -g hello.c
#include <stdio.h>

int main(int argc, char* argv[])
{
    printf("hello\n");

    return 0;
}

1.1. Macros

ID: 93cddd0e-4189-4e78-a0e5-b3ceaf6b7d6e
CREATED: <2025-03-07 Fri 18:44>

The C preprocessor is unhygienic (good) and fairly simple (at least compared to C)

1.2. libc

ID: d77ecb14-ecd4-4432-af2e-f431bf9ea18b
CREATED: <2025-03-07 Fri 12:32>

[2025-03-07 Fri 12:32] info

1.2.1. nostd

ID: c7e3f469-f1c9-4b9f-a104-72ae91abab21
CREATED: <2025-03-07 Fri 12:33>

[2025-03-07 Fri 12:34] Writing C software without the standard library [Linux Edition] - Franc[e]sco's Gopherspace

Information about compiling without libc.

  • compile with gcc -nostdlib -m64 (64-bit)
// Tell the compiler incoming stack alignment is not RSP%16==8 or ESP%16==12
__attribute__((force_align_arg_pointer))
void _start() {
  /* call main(), etc */

  /* exit system call */
  // 32-bit
  // asm("movl $1,%eax;xorl %ebx,%ebx;int  $0x80");
  // 64-bit
  asm("mov rax,60; mov rdi,0; syscall");
  __builtin_unreachable();  // tell the compiler to make sure side effects are done before the asm statement
}

1.3. Libraries

ID: b0ff5843-38de-4bd9-800a-728391dafc02
CREATED: <2025-03-07 Fri 12:32>

2. CPP   cpp

[2025-01-16 Thu 22:31] cppreference.com

2.1. Libraries

ID: ad099ae1-d55f-49f4-99c7-de92ced85488
CREATED: <2025-03-02 Sun 20:45>

2.1.1. Boost

ID: 2b62b530-80c0-4a78-828e-509ac78dbfd9
CREATED: <2025-03-02 Sun 20:45>

[2025-03-02 Sun 20:46] Boost C++ Libraries

2.1.2. Adaptagrams   graph

ID: d7c12344-b1ae-4bf2-a620-bc99f8e71e29
CREATED: <2025-03-02 Sun 20:45>

[2025-03-02 Sun 20:46] Adaptagrams: Tools for Adaptive Diagrams

2.1.3. NaCl

ID: f4bfdb27-161d-4b47-b417-55ac4eeff234
CREATED: <2025-03-03 Mon 15:01>

[2025-03-03 Mon 15:01] ~ [2025-03-03 Mon 15:01] Secret-key authenticated encryption: crypto_secretbox

2.2. CUDA   nvidia gpu

ID: a531e912-55ab-4889-806f-475c0316713e
CREATED: <2025-03-02 Sun 21:29>

[2025-03-02 Sun 21:29] CUDA Toolkit Documentation 12.8 [2025-03-03 Mon 14:46] -> NVCC [2025-03-03 Mon 14:47] >> NVIDIA

3. Objective-C

ID: 3021fa48-a98a-471f-896c-db237e97192b
CREATED: <2025-03-03 Mon 20:10>

[2025-03-03 Mon 20:10] About Objective-C [2025-03-03 Mon 20:11] >> C [2025-03-03 Mon 20:14] -> Apple