반응형

C 32

괄호가 "typedefint (f)(void)"인 typedef는 무엇을 의미합니까?기능 시제품입니까?

괄호가 "typedefint (f)(void)"인 typedef는 무엇을 의미합니까?기능 시제품입니까? typedef int (fc_name) (void); 여기서fc_name는 유효한 C 기호입니다. 함수 포인터와 얼마나 다른가요?typedef?이거는.typedef함수형으로 변환합니다.함수 포인터에 사용하는 것이 목적이지만 이 경우 사용하는 구문은 다음과 같습니다. int bar(void); fc_name* foo = bar; /* Note the * */ 업데이트: 조나단 레플러의 답변에 댓글로 언급된 바와 같이,typedef함수를 선언하는 데 사용할 수 있습니다.콜백 함수들의 집합을 선언하는 것이 하나의 용도가 될 수 있습니다. typedef int (callback)(int, void*); cal..

programing 2023.11.04

Cree(): 포인터가 잘못되었습니다.

Cree(): 포인터가 잘못되었습니다. C를 독학하고 있습니다.제 목표는 쿼리 문자열을 걸어 앰퍼샌드와 등호 위에서 분할하는 C 함수를 만드는 것입니다.나는 발그린드의 이 오류에 걸려있습니다. ==5411== Invalid free() / delete / delete[] / realloc() ==5411== at 0x402AC38: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so) ==5411== by 0x804857C: main (leak.c:28) ==5411== Address 0x420a02a is 2 bytes inside a block of size 8 free'd ==5411== at 0x402AC38: free (in /usr/lib/..

programing 2023.10.30

C++에서 안전 중요 소프트웨어를 위한 공식 방법

C++에서 안전 중요 소프트웨어를 위한 공식 방법 C를 살펴보면 C는 코드 내에서 사용할 수 있는 형식적인 방법(frama-c, VCC, verifast)에 대한 지원이 좋습니다.C++는 내가 아는 한 비교할 만한 것이 없는 것 같습니다. C++로 작성된 안전에 중요한 소프트웨어에 대한 추론에는 어떤 공식적인 방법이 있습니까?저와 함께 일하는 의료 회사는 Coverity와 Klocwork를 사용하여 자원 유출과 초기화되지 않은 포인터 사용과 같은 문제가 있는지 코드를 확인합니다. 그러나 이러한 도구는 안전 중요 코드의 표준이 아닌 도구입니다. MISRA는 C++에 대한 표준을 연구해왔습니다.그들은 C way back으로 시작했고, 약 5년 전부터 C++에 대한 작업을 시작했습니다.한 가지 큰 문제는 예를..

programing 2023.10.30

makefile의 "include"와 "-include"의 차이

makefile의 "include"와 "-include"의 차이 makefile에서, 사이의 의미의 차이는 무엇입니까?include그리고.-include? 예: -include $(APPINCLUDES) include $(CONTIKI)/platform/$(TARGET)/Makefile.$(TARGET) 다른 점은-include포함 파일이 존재하지 않을 경우 오류가 발생하지 않습니다. 그-접두사는 많은 장소에서 사용될 수 있습니다.Makefile실패해도 상관없는 행동을 하기 위해서입니다.문서에서 오류 메시지 없이 makefile이 존재하지 않거나 재작성할 수 없는 makefile을 단순히 무시하려면 다음과 같이 include 대신 -include 지시문을 사용합니다. -include 파일 이름... 파일..

programing 2023.10.25

매크로 "Higher Order Function" 생성기를 사용한 C의 기능 프로그래밍

매크로 "Higher Order Function" 생성기를 사용한 C의 기능 프로그래밍 이건 정말 대단한 질문이니 주의를 기울이세요 ;-) 컴파일러 정적 타입 검사를 유지하면서 C에서 일반적인 수집 동작(검색, 각각에 대한 등)에 템플릿 함수를 사용하고 싶습니다.이 예제와 같이 간단한 콜백을 사용할 때는 매우 간단합니다. #define MAKE_FOREACH(TYPE)\ void foreach_##TYPE (TYPE[n] array, int n, void(*f)(TYPE)) {\ for(int i = 0; i < n; i++) {\ f(array[i]);\ }\ } 다음과 같은 작업을 수행할 수 있습니다. MAKE_FOREACH(int) MAKE_FOREACH(float) void intcallback(..

programing 2023.10.25

목표 C: SHA1

목표 C: SHA1 목표 c에서 문자열 또는 숫자 집합을 어떻게 공유합니까?CommonCrypto(애플 프레임워크)에는 SHA-1 해시를 계산하는 기능이 있으며, 여기에는 한 단계 해시가 포함됩니다. #include unsigned char digest[CC_SHA1_DIGEST_LENGTH]; NSData *stringBytes = [someString dataUsingEncoding: NSUTF8StringEncoding]; /* or some other encoding */ if (CC_SHA1([stringBytes bytes], [stringBytes length], digest)) { /* SHA-1 hash has been calculated and stored in 'digest'. */ ..

programing 2023.10.25

포크() 다음에 먼저 실행하는 사람은 부모입니까, 자식입니까?

포크() 다음에 먼저 실행하는 사람은 부모입니까, 자식입니까? 이것들 중 하나라도 될 수 있다는 것을 알고 있습니다.하지만 저는 항상 아이가 제 유닉스 단말기에서 먼저 실행되는 것을 봅니다.그리고 부모와 자식이 나란히 실행하는 것은 어떨까요?그들은 연속적으로 실행하고 있는 것 같습니다.이것은 그들이 같은 터미널을 공유하기 때문입니까?일반적으로 그들의 집행의 상대적인 순서에 대해서는 아무 말도 할 수 없습니다. 이제 구체적인 문제를 생각해 보겠습니다.경우: 두 프로세스 모두 실행하는 데 trivial가 아닌 시간이 소요됩니다. 당신 말은 하나가 다른 하나가 진전을 이루기 전에 완성을 향해 달려간다는 것이고, 그리고 사용하지 않는 CPU 사이클이 있고, 이는 응용프로그램을 실행할 때마다 발생합니다. 이는 두..

programing 2023.10.20

함수 내부의 구조를 정의할 때 "벌점"이 있습니까?

함수 내부의 구조를 정의할 때 "벌점"이 있습니까? 그냥 호기심 때문에.. 제목에서 알 수 있듯이 함수 내부의 구조를 정의하는 데 "벌점"이 있습니까?(성능, 기억력, 잘못된 프로그래밍 연습 등) 추신. 함수 내부에 (NON-Template) 함수를 정의하는 것이 일반적인 관례라는 것은 알지만, 그래도..)C++11에서는 아니요 - 패널티가 없습니다.물론 다른 곳에서 이 기능을 재사용하고 싶지 않다면 구현 세부 정보를 가지고 "더 눈에 보이는" 스코프를 오염시키지 않는 것이 매우 좋은 스타일이라고 생각합니다.그러나 람다는 기본적으로 이 아이디어의 축약된 형태이며, 구조를 단지 기능자로 사용하는 경우 일반적으로 선호되어야 합니다.모든 종류의 데이터에 대해, 그것은 완벽하게 괜찮습니다, 비록 그것은 보통 다..

programing 2023.10.20

콘솔에서 getc로 \r(캐리지 리턴) vs \n(새 줄) 읽기?

콘솔에서 getc로 \r(캐리지 리턴) vs \n(새 줄) 읽기? 저는 기본적으로 사용자가 "입력"을 누를 때까지 기다렸다가 뭔가를 하는 기능을 쓰고 있습니다.테스트할 때 작동하는 것은 다음과 같습니다. #include int main() { int x = getc(stdin); if (x == '\n') { printf("carriage return"); printf("\n"); } else { printf("missed it"); printf("\n"); } } 제게 궁금한 점은, 그리고 처음에 시도했던 것은 다음과 같습니다.if (x == '\r')그런데 테스트를 해보니까 제가 엔터를 치는 걸 못 잡았거든요.'\n'내가 콘솔에서 엔터를 치는 것에 해당하는 것 같습니다.누가 차이점을 설명해 줄 수 있..

programing 2023.10.15

구조물의 새 인스턴스(instance)를 만드는 방법

구조물의 새 인스턴스(instance)를 만드는 방법 구조물의 새 인스턴스를 만드는 올바른 방법은 무엇입니까?주어진 구조: struct listitem { int val; char * def; struct listitem * next; }; 나는 두가지 방법을.. 첫 번째 방법(xCode는 이것이 구조와 그르다고 말합니다): struct listitem* newItem = malloc(sizeof(struct listitem)); 두번째 방법: listitem* newItem = malloc(sizeof(listitem)); 아니면 다른 방법이 있습니까?포인터를 원하는지 아닌지에 따라 다릅니다. 구조를 이렇게 부르는 것이 좋습니다. typedef struct s_data { int a; char *b; ..

programing 2023.10.15
반응형