3 недели назад
🦀 Что удивляет в C, если первым языком был Rust
? Обычно разработчики переходят от C к Rust. Автор C for Rust Programmers пошёл в обратную сторону и собрал нюансы, которые легко пропустить. Например, такая функция выглядит как принимающая массив из трёх элементов: void inspect(char data[3]) { printf("%zu\n", sizeof(data)); } Но параметр здесь становится указателем. На платформе с 64-битными указателями увидите 8, а не 3. Длина массива в функцию не передаётся. Ещё несколько сюрпризов: • C-строки заканчиваются \0, а strlen() ищет этот байт, проходя по памяти...