반응형

c 30

if 조건의 쉼표 연산자

if 조건의 쉼표 연산자 int a = 1, b = 0; if(a, b) printf("success\n"); else printf("fail\n"); if(b, a) printf("success\n"); else printf("fail"); 이것은 app 파일이고 Visual Studio 2010에서 출력한 것입니다. fail success 왜 이런 행동을 할까요?설명 좀 해주시겠습니까?http://en.wikipedia.org/wiki/Comma_operator : C 및 C++ 프로그래밍 언어에서 쉼표 연산자(토큰으로 표시됨),)은 첫 번째 피연산자를 평가하고 결과를 폐기한 다음 두 번째 피연산자를 평가하고 이 값(및 유형)을 반환하는 이진 연산자입니다. 처음엔if: if (a, b) a먼저 평가하..

programing 2023.11.04

오류: 언어 c에 대한 사용 권한이 거부되었습니다.

오류: 언어 c에 대한 사용 권한이 거부되었습니다. 슈퍼 유저가 아닌 사용자로 이와 같은 기능을 만들 때 아래와 같은 오류가 나타납니다. ERROR: permission denied for language c SQL state: 42501 생성된 함수는 다음과 같습니다. CREATE OR REPLACE FUNCTION dblink_connect (text) RETURNS text AS '$libdir/dblink','dblink_connect' LANGUAGE C STRICT; 하지만 비슈퍼 유저에게 C 언어에 대한 권한을 부여하고 싶었더라면 아래와 같은 오류가 발생합니다.postgres=# grant usage on language c to caixa; ERROR: language "c" is not ..

programing 2023.11.04

C에 포인터를 사용하는 컨스트럭트

C에 포인터를 사용하는 컨스트럭트 제가 C를 검토하고 있는데 관련해서 질문이 있습니다.const포인터를 이용한 용법저는 다음 코드를 이해합니다. const char *someArray 이것은 char의 종류들을 가리키는 포인터를 정의하는 것입니다.const수식어는 다음에 저장된 값을 의미합니다.someArray변경할 수 없습니다.그런데 다음의 의미는 무엇일까요? char * const array 이것은 "array"라는 이름의 배열에 대한 문자 포인터인 매개 변수를 지정하는 대체 방법입니까?const수정할 수 없습니까? 마지막으로, 이 조합이 의미하는 바는 무엇입니까? const char * const s2 참고로, 이것들은 7장의 Deitel C 프로그래밍 북에서 가져온 것이고 이것들은 모두 함수에 전..

programing 2023.10.30

MSVC에 대한 __attribute__(형식(printf, 1, 2))?

MSVC에 대한 __attribute__(형식(printf, 1, 2))? GCC를 사용하면 다음과 같이 지정할 수 있습니다.__attribute__((format(printf, 1, 2))), 컴파일러에게 이 함수가 printf 형식 지정자인 다양한 매개 변수를 사용한다고 말합니다. 이것은 vsprintf 함수 패밀리와 같은 경우에 매우 유용합니다.가질 수 있습니다extern void log_error(const char *format, ...) __attribute__((format(printf, 1, 2))); 그리고 내가 이 함수를 호출할 때마다 gcc는 printf와 같이 인수의 종류와 개수가 주어진 형식 지정자에 부합하는지 확인하고 그렇지 않으면 경고를 발행할 것입니다. 마이크로소프트 C/C+..

programing 2023.10.25

'log'에 대한 정의되지 않은 참조

'log'에 대한 정의되지 않은 참조 Donald Eastlake(코드: http://kambing.ui.ac.id/minix/other/rfc3797/) )에 의해 RFC 3797 랜덤 선택 알고리즘의 구현을 컴파일하려고 합니다.그러나 링커 오류가 발생합니다. rfc3797.c:(.text+0xe7f): undefined reference to `log' 수학 라이브러리에 명시적으로 링크되는 제공된 Makefile로 작성하려고 하지만 여전히 오류가 발생합니다. cc -lm -o randomselection rfc3797.c MD5.c 이 프로그램은 어떻게 컴파일 할 수 있습니까?이유가 뭔지는 모르겠지만 당신이 이사를 한다면-lm끝까지, 그것은 컴파일 될 것입니다. $ cc -o randomselecti..

programing 2023.10.25

C와 C++의 JNI 통화가 다릅니까?

C와 C++의 JNI 통화가 다릅니까? 그래서 저는 자바 네이티브 인터페이스를 활용하는 C에 다음과 같은 코드를 가지고 있습니다만, 이것을 C++로 변환하고 싶지만 방법을 잘 모르겠습니다. #include #include #include "InstanceMethodCall.h" JNIEXPORT void JNICALL Java_InstanceMethodCall_nativeMethod(JNIEnv *env, jobject obj) { jclass cls = (*env)->GetObjectClass(env, obj); jmethodID mid = (*env)->GetMethodID(env, cls, "callback", "()V"); if (mid == NULL) { return; /* method not ..

programing 2023.10.20

2의 파워가 아닌 버퍼 사이즈로 socket.recv를 호출하는 실제 영향은 무엇입니까?

2의 파워가 아닌 버퍼 사이즈로 socket.recv를 호출하는 실제 영향은 무엇입니까? python을 socket.recv과 같은 . socket.recv(bufsize[, flags]) socket.recv용 python 문서에는 다음과 같이 모호하게 명시되어 있습니다. 참고: 하드웨어 및 네트워크 현실과 가장 잘 일치하려면 버퍼 크기 값이 2의 비교적 작은 거듭제곱(예: 4096)이어야 합니다. 질문:"하드웨어 및 네트워크 현실과 가장 잘 부합한다"는 것은 무엇을 의미합니까?버퍼 크기를 2중 전력이 아닌 상태로 설정할 경우의 실제 영향은 무엇입니까? 저는 이 판독값을 2의 거듭제곱으로 만들기 위한 다른 권장사항들을 많이 봤습니다.배열 길이를 2의 거듭제곱(길이에 대한 비트 시프트/마스킹 작업, 최적..

programing 2023.10.15

LibCOS가 존재합니까?

LibCOS가 존재합니까? 본질적으로 libc에 불과한 임베디드 OS에 대해 들은 것을 기억합니다(아마도 c++를 지원했을 것입니다).커널이나 파이프, OS에서 기대하는 다른 것들이 없었습니다.위키피디아에서 찾아봤는데 목록이 안 나왔어요. 그런 OS가 존재합니까?VM 외부에서 통신할 수 있도록 터미널 전용 또는 C/C++(tcp) 소켓을 지원하는 OS가 있습니까?그것은 장난감으로서 나에게 유용할 것입니다.이것에 대한 이름을 찾을 수 없는 이유는 운영 체제가 아니기 때문입니다. 운영 체제가 없기 때문입니다.흔히 이것을 "베어 메탈(bare-metal)" 프로그래밍이라고 부릅니다. 베어 메탈 프로그래밍의 일반적인 개념은 보드 위에 메모리 컨트롤러와 다른 하드웨어를 설정하고 프로그램에 제어권을 전달하는 약간의..

programing 2023.10.15

링크하는 동안 전역 변수에 대한 정의되지 않은 참조

링크하는 동안 전역 변수에 대한 정의되지 않은 참조 3개의 소스 파일에 해당하는 3개의 모듈로 나누어진 프로그램을 컴파일하려고 합니다.a.c,b.c,그리고.z.c.z.c포함.main()함수, 함수를 호출합니다.a.c그리고.b.c. 게다가, 에 있어서의 함수.a.c함수를 호출합니다.b.c,그리고 역도 성립.마지막으로 글로벌 변수가 있습니다.count세 개의 모듈에서 사용되며 별도의 헤더 파일에 정의됩니다.global.h. 소스 파일의 코드는 다음과 같습니다. a.c #include "global.h" #include "b.h" #include "a.h" int functAb() { functB(); functA(); return 0; } int functA() { count++; printf("A:%d\n..

programing 2023.10.15
반응형