TGViewer
Rust Rust @rust_code · 8.95K subscribers
Post #1443 4.38K
🦀 Что удивляет в C, если первым языком был Rust?

Обычно разработчики переходят от C к Rust. Автор C for Rust Programmers пошёл в обратную сторону и собрал нюансы, которые легко пропустить.

Например, такая функция выглядит как принимающая массив из трёх элементов:


void inspect(char data[3]) {
printf("%zu\n", sizeof(data));
}


Но параметр здесь становится указателем. На платформе с 64-битными указателями увидите 8, а не 3. Длина массива в функцию не передаётся.

Ещё несколько сюрпризов:

• C-строки заканчиваются \0, а strlen() ищет этот байт, проходя по памяти.
• long обычно занимает 64 бита в 64-битных Unix-системах и 32 бита в Windows.
• malloc() может вернуть NULL, а язык не заставит проверить результат.
• Вместо ссылок с проверкой заимствований работают сырые указатели.

Полезное чтение для тех, кто пишет FFI или хочет понять, какие гарантии привычно получает от Rust.

https://bd103.dev/blog/2026-10-07-c-for-rust-programmers/

@rust_code
  • ❤ 12
  • 👍 7
  • 🤔 3
  • 🔥 2
  • 😁 1
More from @rust_code
  1. Oct 15, 2026🦀 Кто должен доказывать корректность реализации трейта в Rust: сама реализация или код, к…
  2. Oct 14, 2026🦀 В Rust нашли баг, который 11 лет обходил гарантии безопасности памяти. Ошибка позволяет…
  3. Oct 13, 2026👣 Campfire переписали на Rust, почти без ручного Rust. DHH пишет, что сегодня уже гоняет…
  4. Oct 13, 2026🦀 1,8 млн ошибок из-за одного пробела: как разработчик собирал Kubernetes Ingress на Rust…
  5. Oct 12, 2026🍃 Добавить реплику MongoDB, не копируя всю базу: что меняет Atlas Infinite В привычной ар…
  6. Oct 10, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →