C 38

C에서 음영처리된 전역 변수에 액세스하려면 어떻게 해야 합니까?

C에서 음영처리된 전역 변수에 액세스하려면 어떻게 해야 합니까? C에서 음영처리된 전역 변수에 액세스하려면 어떻게 해야 합니까?C++에서 사용할 수 있습니다.::글로벌 네임스페이스에 적용됩니다.파일 범위 변수가 정적이 아닌 경우 중첩 범위에서 외부를 사용하는 선언을 사용할 수 있습니다. int c; int main() { { int c = 0; // now, c shadows ::c. just re-declare ::c in a // nested scope: { extern int c; c = 1; } // outputs 0 printf("%d\n", c); } // outputs 1 printf("%d\n", c); return 0; } 변수가 static으로 선언되면 참조할 방법이 없습니다.c에는 :..

programing 2023.09.06

lstat fstat과 stat의 차이(C)

lstat fstat과 stat의 차이(C) 나는 C에서 학교 과제를 작성하여 디렉토리, 일반 파일 및 심볼 링크를 파일 시스템을 통해 검색합니다.지금은 사용합니다.lstat항목에 대한 정보를 가져옵니다. 그래서 사이에 무엇이 다른 점은?lstat fstat그리고.stat시스템 호출?저도 찾고 있었어요stat vs lstat vs fstat이 질문에 대한 답이 이미 있지만 다음과 같이 형식이 지정되어 있습니다. lstat()와 동일합니다.stat()경로 이름이 심볼릭 링크인 경우 참조하는 파일이 아닌 링크 자체에 대한 정보를 반환합니다. fstat()와 동일합니다.stat()검색할 정보에 대한 파일이 파일 설명자(파일 이름 대신)에 의해 지정되는 경우를 제외합니다. http://man7.org/linux..

programing 2023.08.12

3D 어레이는 C에 어떻게 저장됩니까?

3D 어레이는 C에 어떻게 저장됩니까? C의 배열은 행마주 순서로 할당되는 것으로 알고 있습니다.따라서 2 x 3 배열의 경우: 0 1 2 3 4 5 메모리에 저장됩니다. 0 1 2 3 4 5 그러나 2 x 3 x 2 어레이를 사용하는 경우: 0 1 2 3 4 5 그리고. 6 7 8 9 10 11 이것들은 어떻게 메모리에 저장됩니까?다음과 같이 연속적입니다. 0 1 2 3 4 5 6 7 8 9 10 11 아니면 다른 방법인가요?아니면 어떤 것에 의존합니까?낮은 수준에서는 다차원 배열과 같은 것이 없습니다.주어진 수의 요소를 수용할 수 있을 정도로 충분히 큰 메모리 블록이 있습니다.C에서 다차원 배열은 개념적으로 요소가 배열인 배열입니다.그래서 당신이 한다면, int array[2][3]; 개념적으로 다음..

programing 2023.08.02

C - 직렬화 기술

C - 직렬화 기술 네트워크를 통해 전송할 데이터를 직렬화하기 위해 코드를 작성하고 있습니다.현재 저는 다음과 같은 기본 절차를 사용합니다. 을 생성합니다.void*완충제 다음과 같은 모든 바이트 순서 지정 작업 적용hton네트워크를 통해 전송할 데이터의 패밀리 사용하다memcpy메모리를 버퍼에 복사합니다. 네트워크를 통해 메모리 전송 문제는 다양한 데이터 구조(종종 무효* 데이터가 포함되어 있어 바이트 순서를 신경 쓸 필요가 있는지 여부를 알 수 없음)에서 코드가 각 데이터 구조에 매우 특정한 직렬화 코드로 인해 매우 비대해지고 전혀 재사용할 수 없다는 것입니다. 이것을 더 쉽게/ 덜 추하게 만드는 C의 좋은 직렬화 기술은 무엇입니까? - 참고: 특정 프로토콜에 묶여 있기 때문에 데이터를 직렬화하는 방..

programing 2023.07.28

C에서 FILE 키워드는 정확히 무엇입니까?

C에서 FILE 키워드는 정확히 무엇입니까? 저는 취미로 C를 배우기 시작했고 꽤 오랫동안 FILE을 파일 포인터 선언으로 맹목적으로 사용했는데, 저는 궁금했습니다.이것은 C가 파일을 처리하기 위한 키워드입니까, 아니면 특수 데이터 유형입니까?내부 및 기타 데이터에 대한 파일 스트림이 포함되어 있습니까?포인터로 정의되는 이유는 무엇입니까? 조금 더 명확하게 하기 위해 제가 의미하는 바를 보여주는 예는 다음과 같습니다. FILE* fp; //

programing 2023.07.23

#define 매크로에서 # 기호를 이스케이프하시겠습니까?

#define 매크로에서 # 기호를 이스케이프하시겠습니까? 피비린내 나는 세부 사항으로 들어가지 않고, 나는 사용하고 싶습니다.#define다음으로 확장할 매크로#include그러나 '#' 기호는 전처리기를 혼란스럽게 합니다(인수를 인용하고 싶다고 생각하기 때문입니다). 예를 들어, 다음과 같은 작업을 수행합니다. #define MACRO(name) #include "name##foo" 다음과 같이 사용합니다. MACRO(Test) 확장 대상: #include "Testfoo" 겸손한 # 기호로 인해 전처리기가 바프됩니다. MinGW에서 다음 오류가 발생합니다. '#' is not followed by a macro parameter 나는 # 기호를 피해야 한다고 생각하지만 이것이 가능한지조차 모르겠습니..

programing 2023.07.18

단순 해시 함수

단순 해시 함수 해시 테이블을 사용하여 다른 단어를 저장하는 C 프로그램을 작성하려고 하는데 도움이 필요합니다. 먼저 저장해야 할 단어 수에 가장 가까운 소수 크기의 해시 테이블을 만든 다음 해시 함수를 사용하여 각 단어의 주소를 찾습니다.저는 가장 간단한 기능으로 시작했습니다. 문자들을 더해서 88%의 충돌로 끝났습니다.그리고 나서 저는 그 기능을 실험하기 시작했고, 제가 그것을 무엇으로 바꾸든, 충돌은 35% 이하로 줄어들지 않는다는 것을 발견했습니다.지금은 사용 중입니다. unsigned int stringToHash(char *word, unsigned int hashTableSize){ unsigned int counter, hashAddress =0; for (counter =0; word[c..

programing 2023.07.13

좋은 디자인을 배우기 위해 연구할 가치가 있는 오픈 소스 C 프로젝트는 무엇입니까?

좋은 디자인을 배우기 위해 연구할 가치가 있는 오픈 소스 C 프로젝트는 무엇입니까? 닫혔습니다. 이 질문은 충족되지 않습니다.스택 오버플로 지침입니다.현재 답변을 수락하고 있지 않습니다. 도구, 라이브러리 또는 즐겨찾는 오프사이트 리소스를 추천하거나 찾는 질문은 의견이 많은 답변과 스팸을 유인하는 경향이 있기 때문에 스택 오버플로의 주제에서 벗어나 있습니다.대신 문제를 설명하고 문제를 해결하기 위해 지금까지 수행된 작업을 설명합니다. 9년 전에 문을 닫았습니다. 이 질문을 개선합니다. C에서 좋은 디자인을 배우기 위해 흥미로운 작은 오픈 소스 프로젝트는 무엇입니까? 프로젝트는 다음과 같아야 합니다. 너무 크지 않음(리눅스 커널과 동일) 잘 문서화됨 아마도 여전히 활발한 개발 중일 것입니다. 저는 이제 막..

programing 2023.07.13