반응형

C 4

abs 함수나 if 스테이트먼트를 사용하지 않고 절대값을 얻는다.

abs 함수나 if 스테이트먼트를 사용하지 않고 절대값을 얻는다. 어떻게 하면 정수의 절대값을 얻을 수 있을까 생각 중이었는데if스테이트먼트도abs()처음에는 왼쪽 시프트 비트를 사용하고 있었습니다. sizeof(int) * CHAR_BIT - 1; r = (v + mask) ^ mask; 이 코드를 C로 입력해 보면 동작합니다. int abs(int n){ return n*((2*n+1)%2); } 이 답변이 도움이 되기를 바랍니다.브런치리스: int abs (int n) { const int ret[2] = { n, -n }; return ret [n> 31; return (mask & -n) | (~mask & n); } 32비트 부호 정수(Java)를 가정하면 다음과 같이 쓸 수 있습니다. pub..

programing 2022.07.02

set/getsockopt SO_SNDBUF 사이즈가 2배가 되는 것을 이해한다.

set/getsockopt SO_SNDBUF 사이즈가 2배가 되는 것을 이해한다. 안녕하세요 UDP 소켓의 송신 버퍼 크기를 확인하기 위한 다음 프로그램이 있습니다.하지만 반품가치는 좀 헷갈리네요.다음과 같은 간단한 앱을 사용하고 있습니다. #include #include int main(int argc, char **argv) { int sockfd, sendbuff; socklen_t optlen; sockfd = socket(AF_INET, SOCK_DGRAM, 0); if(sockfd == -1) printf("Error"); int res = 0; // Get buffer size optlen = sizeof(sendbuff); res = getsockopt(sockfd, SOL_SOCKET, ..

programing 2022.07.02

변경된 파일만 다시 컴파일하도록 Makefile을 만들려면 어떻게 해야 합니까?

변경된 파일만 다시 컴파일하도록 Makefile을 만들려면 어떻게 해야 합니까? 편집한 파일만 컴파일 할 수 있도록 만드는 데 조금 애를 먹고 있습니다.하지만 큰 성공을 거두지 못했고 모든 파일이 다시 컴파일 되었습니다.누가 이유를 설명해 줄 수 있나요? 파일은 다음과 같습니다. main.c a_functions.c 여기서 main.c는 main.h를 포함하며 a_main.c는 a.h를 포함합니다. make file은 다음과 같습니다. CC=gcc CFLAGS=-Wall -I. -c EXEC_FILE=program1 all: program a_functions.o: a_functions.c a_functions.c: a.h main.o: main.c main.c: main.h objects: a_func..

programing 2022.07.02

C 프로그래밍에서 트리플 마이너스 부호가 나올 수 있나요?그것은 무엇을 뜻하나요?

C 프로그래밍에서 트리플 마이너스 부호가 나올 수 있나요?그것은 무엇을 뜻하나요? 이 질문에는 이미 답변이 있습니다. 닫힘9년 전. 중복 가능성: 왜 C에서는 a++++b가 작동하지 않는 거죠? 데이비드 사이먼의 '임베디드 소프트웨어 입문서' 113페이지에서 얻은 것입니다. 아래 문구를 보았습니다. iHoursTemp = iHoursTemp + iZoneNew ---iZoneOld; 이 줄에 정말 마이너스 기호 세 개가 있어요?트리플 마이너스 부호는 무슨 뜻입니까? 나는 그것이 C 프로그래밍 스테이트먼트라고 믿는다.이는 다음과 같습니다. iHoursTemp = iHoursTemp + (iZoneNew--) - iZoneOld; 이것은 Maximum-Munch 원칙에 준거하고 있다.정답은 (Rob이 말한 ..

programing 2022.07.02
반응형