Как это понимать? Это что вся функция, которая нам устанавливает связь с сервером?
sysdeps/unix/sysv/linux/connect.c
, но всё что она делает -- это системный вызов, обёрнутый в манипуляции с pthread-cancellation.Вот так не работает: button_left.button_port = "PORTD";
А так работает:
struct button button_left = {"PORTD", 6, 0, 0, 0, 12};
Почему возникает ошибка при обращении к struct?
Почему-то меню показывается два раза после того, как я введу что-либо.
scanf("%c", &choice);
scanf(" %c%*[^\n]", &choice);
%c
проглотит все пробельные символы, %*[^\n]
проглотит хвост строки после первого прочитанного не-пробельного символа. Хотелось бы знать причину предупреждений, это стандартное поведение или несовершенство препроцессора?
_Generic((1), int : _Generic((2), int : fnk(1, 2,
# 37 "generic.c" 3 4
((void *)0)
# 37 "generic.c"
), char * : fnk(1, 0, 2)));
printf("\n2.2)---------\n");
_Generic((1), int : _Generic(("2"), int : fnk(1, "2",
# 40 "generic.c" 3 4
((void *)0)
# 40 "generic.c"
), char * : fnk(1, 0, "2")));
void fnk_int(uintmax_t A, uintmax_t B){
...
}
void fnk_pchar(uintmax_t A, char *B){
...
}
#define FFF_B(A, BC) \
_Generic((A), \
int : _Generic((BC), \
int : fnk_int, \
char * : fnk_pchar)(A, BC))
Что не так?
char *str = "hello";
char str[] = "hello";
Как практиковаться
Препроцессоры "глупые" и пихают весь код из подключенных заголовочных файлов, или только тот, что нужен программе после вставляет компоновщик?
P.S. Т.е. если перефразировать вопрос, то он бы звучал так: можно ли выборочно подключать только необходимые функции из подключаемых библиотек?
Если первой строчкой кода записать #include <stdio.h>
Как скопировать значение
#include <string.h>
void ShortNames(char **arr, int num)
{
int i;
for (i = 0; arr[i]; ++i) {
int len = strchr(arr[i], '=') - arr[i];
if (len <= num)
printf("%.*s\n", len, arr[i]);
}
}
Смысл его прост: отменить действие макроса в определенной части кода, а по ее истечении восстановить этот макрос.
#define temp func
значение макроса func не подставляется. В temp попадает буквально слово func
. После #undef func
содержимое макроса func будет потеряно. Это поведение предписано стандартом, мне неизветсны опции компилятора, которыми его можно было бы изменить. См. eelis.net/c++draft/cpp.replace#10 и eelis.net/c++draft/cpp.rescan#define foo bar
#define func foo
...
#undef func
...
#define func foo
пока z не сделаетется в 1024/1000000*255*20 секунд ждем
while (z < 21) { if (TCNT0 == 255) { z++; }; };
Русским языком говоря , нажал кнопку подождал примерно 5.2 с
Код не работает в протеусе и сыплет ошибками
В процессе выполнения программы удаляю файл и вижу, что fwrite продолжает возвращать количество записанных байт, при этом файла нет, и он не пересоздается.
/proc/<pid>/fd
твоего процесса. mid = high + low; guess = arr[mid];
else if (guess < item) low = mid - 1;
int arr[length];
Если length = 2147483647, то программа вообще отказывается работать.
Как в gcc сохранять объектные файлы
-o
-- путь к результату, препроцессирования/компиляции/линковки. Научи свой Makefile подставлять правильный путь в эту опцию.NAME = calc
SRC = main.c \
parser.c \
ft_lib/ft_atoi.c \
ft_lib/ft_putchar.c \
ft_lib/ft_putnbr.c
BUILDDIR=build
OBJ = $(addprefix $(BUILDDIR)/,$(subst /,_,$(patsubst %.c,%.o,$(SRC))))
FLAGS = #-Wall -Wextra -Werror
all: $(NAME)
$(NAME): $(OBJ)
gcc $(OBJ) -o $(NAME)
define CC_RULE =
$(BUILDDIR)/$(subst /,_,$(patsubst %c,%o,$(SOURCE))): $(SOURCE)
gcc $(FLAGS) -c $< -o $@
endef
$(foreach SOURCE,$(SRC),$(eval $(call CC_RULE,$(SOURCE))))
clean:
rm -f $(OBJ)
fclean:
rm -f $(NAME)
re: fclean all