Для вопросов о K&R C, предстандартном языке, описанном в первом издании "The C Programming Language" Kernighan & Ritchie
6 ответов

Что является хорошим примером использования переменной регистра в C?

Я читаю K&R; и пришел к небольшому разделу о переменных реестра, и мне было интересно, есть ли у людей здесь некоторые хорошие примеры этого на практике. Из раздела 4.7 в K&R;: Объявление регистра выглядит так зарегистрировать int x; зарегистрироват…
24 ноя '08 в 18:34
1 ответ

Пустой аргумент в определении функции, но примитивный тип данных в объявлении

У меня есть запрос с кодом ниже. Как приведенный ниже код интерпретируется в соответствии с K&R; c? Нет ошибки компиляции, и код работает нормально. Я использовал -traditional в опции сборки в кодовых блоках. Некоторое время искал, но не смог получи…
16 апр '16 в 16:17
2 ответа

Доступ к параметрам, переданным в функцию с пустым списком параметров в C

Поскольку функциям с пустыми списками параметров может быть передано переменное число параметров в C, предположим, у меня есть функция, определенная как: void foo(){ // I want to access the parameters passed in here } И я называю это аргументами, ск…
02 дек '17 в 10:43
5 ответов

Запись в к-струну

Мой код segfaults, и я не знаю почему. 1 #include <stdio.h> 2 3 void overwrite(char str[], char x) { 4 int i; 5 for (i = 0; str[i] != '\0'; i++) 6 str[i] = x; 7 } 8 9 int main(void) { 10 char *s = "abcde"; 11 char x = 'X'; 12 overwrite(s, x); …
10 сен '09 в 14:26
1 ответ

Что означает это странное определение C++?

У меня есть странное определение функции в моем коде домашней работы, и я не знаю, что это должно означать. char * sh_single_quote (string) char *string; {...} Особенно "char *string;" строка с точкой с запятой в конце.
13 мар '13 в 14:44
4 ответа

K&R Exercise 2-3 "Hex to int converter" Problem

Программа, которую я написал, работает в демографии, состоящей только из одного шестнадцатеричного значения. (Возможно, это не самое элегантное решение, но я новый программист). Мой вопрос: как мне поступить с обработкой нескольких шестнадцатеричных…
30 апр '09 в 01:44
3 ответа

Объявление функции: K&R против ANSI

Каковы различия между объявлением функции K&R; и объявлением функции ANSI?
22 июн '10 в 09:54
4 ответа

Правильно объявив функцию main() в ANSI C

Стандарт С говорит: Функция, вызываемая при запуске программы, называется основной. Реализация не объявляет прототип для этой функции. Он должен быть определен с типом возврата int и без параметров: int main(void) { /* ... */ } или с двумя параметра…
19 ноя '09 в 18:54
1 ответ

Каково значение putchar(c) здесь '_'?

Каково значение putchar(c) вне цикла? main() { int c; while (c = getchar() != EOF) { printf("printf c_inloop :%d\n",c); printf("Putchar c_inside: "); putchar(c); printf("\n\n"); } putchar(c); printf("printf c_outloop %d",c); /*outside loop*/ } Когда…
06 сен '13 в 00:39
6 ответов

Какова цель этой линии? (Объявление функции)

Я работаю через K & R, чтобы изучить программирование. Пока все идет хорошо, но мне неясно, какую роль играет строка кода из раздела 1.8 (функции). В разделе 1.8 авторы показывают, как создать функцию, которая возводит одно целое в степень другого ц…
11 янв '12 в 21:49
5 ответов

Пример K&R Qsort с путаницей указателей и массивов

Мне трудно понять следующий фрагмент кода. Я понимаю указатель на функцию маньеризма, но я нахожу путаницу в указанных строках. void qsort(void **v, int left, int right, int (*comp) (void *, void *)) { int i, last; void swap(int **v, int i, int j); …
05 авг '09 в 04:52
8 ответов

Помогите с пользовательской функцией getline()

Может кто-нибудь объяснить мне, почему это не работает? #include <stdio.h> #include <stdlib.h> char *getline(int lim) { char c; int i; char *line; line = malloc(sizeof(char) * lim); i = 0; while((c = getchar()) != '\n' && c != EO…
30 янв '09 в 17:07
3 ответа

UINT_MAX такой же, как ULONG_MAX в C

Решая упражнения из книги K&R; C, я наткнулся на упражнение 2.1. Сначала я получил как UINT_MAX как -1, но потом я использовал %u заполнитель, но теперь он дает мне тот же номер, что и ULONG_MAX, В книге в Приложении B говорится, что UINT_MAX должно…
17 мар '12 в 12:19
3 ответа

k&r проявляет путаницу с битовыми операциями

Упражнение таково: Напишите функцию setbits(x,p,n,y), которая возвращает x с n битами, которые начинаются с позиции p, установленной на самые правые n битов y, оставляя остальные биты неизменными. Моя попытка найти решение: #include <stdio.h> …
16 янв '10 в 03:24
1 ответ

Изучение C (через K&R) с использованием xcode

Я учу C на языке программирования C (K&R;). Поскольку я не особенно хочу переключаться между текстовым редактором и запуском gcc, я решил использовать xcode в качестве IDE. До сих пор я мог без проблем следовать примерам книги до раздела 1.5.2. Когд…
23 янв '10 в 00:24
5 ответов

(K&R) По крайней мере первые 31 символ внутреннего имени имеют значение?

Если понимать буквально, это имеет смысл, но что именно означает быть значимым символом имени переменной? Я начинающий ученик C, использующий K&R.; Вот прямая цитата из книги: "По крайней мере первые 31 символ внутреннего имени являются значимыми. Д…
30 дек '09 в 16:05
11 ответов

Каковы основные различия между ANSI C и K&R C?

Статья в Википедии о ANSI C гласит: Одной из целей процесса стандартизации ANSI C было создание расширенного набора K&R; C (первого опубликованного стандарта), включающего в себя многие из неофициальных функций, которые были впоследствии представле…
22 авг '08 в 14:29
2 ответа

Как конфертировать из K&R C в ANSI C?

Я пытаюсь выполнить следующий код, который является записью Конкурса кодов C в 1988 году. #define _ -F<00||--F-OO--; int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-…
09 окт '09 в 05:58
8 ответов

Упражнение K&R 1-21 - Психическое непонимание

"Невозможное" упражнение K&R.; "Напишите программу entab, которая заменяет строки пробелов минимальным количеством вкладок и пробелов для достижения одинакового интервала. Используйте одинаковые остановки табуляции, скажем, каждые n столбцов. Должно…
11 июн '10 в 03:34
1 ответ

Смешивание типов данных приводит к сердечному выбросу

Я дурачился с одной из примеров программ в K&R; и обнаружил, что это #include <stdio.h> main() { double nc; for (nc = 0; getchar() != EOF; ++nc) ; printf("%lf\n", nc ); putchar(nc); } выдает результат 3.000000 (что я полностью ожидал), а затем…
28 фев '10 в 23:24