반응형

c 68

시퀀스 포인트 간에 휘발성 변수를 여러 번 읽을 수 있습니까?

시퀀스 포인트 간에 휘발성 변수를 여러 번 읽을 수 있습니까? 나는 C에 대해 가능한 많은 세부 사항을 배우기 위해 나만의 C 컴파일러를 만들고 있습니다.지금은 정확히 어떤 방법으로volatile사물은 통합니다. 혼란스러운 것은 코드의 모든 읽기 액세스가 엄격하게 실행되어야 한다는 것입니다(C11, 6.7.3p7). 휘발성 한정된 유형을 가진 개체는 구현에 알려지지 않은 방식으로 수정되거나 기타 알려지지 않은 부작용이 있을 수 있습니다.따라서 이러한 대상을 지칭하는 표현은 5.1.2.3에 설명된 바와 같이 추상 기계의 규칙에 따라 엄격하게 평가되어야 합니다.또한 모든 시퀀스 시점에서 객체에 마지막으로 저장된 값은 앞서 언급한 알려지지 않은 요인에 의해 수정된 것을 제외하고는 추상 기계에 의해 규정된 값과..

programing 2023.10.20

다른 프로그램을 실행하기 위해 C 프로그램을 어떻게 작성합니까?

다른 프로그램을 실행하기 위해 C 프로그램을 어떻게 작성합니까? 리눅스에서는 다른 프로그램을 실행하는 C 프로그램을 작성하고 싶습니다.프로그램이 실행되면 셸은 사용자가 프로그램에서 정의한 명령을 입력하기를 기다립니다.이 명령을 실행하면 두 번째 프로그램이 시작됩니다. 예를 들어 호출 프로그램과 동일한 디렉토리에 "hello"라는 간단한 C 프로그램이 있다고 가정합니다."hello" 프로그램은 "hello, world" 출력을 출력합니다.첫 번째 프로그램이 실행되고 사용자는 "안녕하세요"라는 명령을 입력합니다."hello" 프로그램이 실행되고 "hello, world."가 셸에 출력됩니다. 검색을 좀 해봤는데 사람들이 "fork()"와 "exec()" 기능을 제안했습니다.다른 사람들은 "시스템()"을 사용..

programing 2023.10.20

공유 라이브러리는 응용 프로그램과 동일한 힙을 사용합니까?

공유 라이브러리는 응용 프로그램과 동일한 힙을 사용합니까? 프로그램이 Linux 에서합니다().so파일). 제은 이러한 가 기본 인가 아니면 인가 하는 입니다.제 질문은 이러한 라이브러리의 코드가 메인 애플리케이션과 동일한 힙에 메모리를 할당할 것인지 아니면 자체 힙을 사용할 것인지입니다. 를 들면, 은, ..so철통같이 걸려온 전화하다malloc, 애플리케이션과 동일한 힙 관리자를 사용할 것인가 아니면 다른 힙 관리자를 사용할 것인가요?또한, 공유된 기억 속의 글로벌 데이터는 어떨까요?그것은 어디에 있습니까?애플리케이션의 경우 bss와 데이터 세그먼트에 있다는 것은 알고 있지만, 공유된 객체 파일에 대한 위치는 모릅니다. 제 질문은 이러한 라이브러리의 코드가 메인 애플리케이션과 동일한 힙에 메모리를 할..

programing 2023.10.15

안드로이드: 자바, C 아니면 C++?

안드로이드: 자바, C 아니면 C++? 저는 자바를 이용해 안드로이드에서 간단한 앱을 작성했습니다. 됐어요. 였습니다. C 또는 C++로 프로그래밍할 때 활동을 만들고 사용자 입력을 처리하고 하드웨어 센서를 사용하며 응용프로그램 리소스에 액세스할 수 있는 헤더와 라이브러리를 제공합니다. (출처) 이와 어떤 관련이 있습니까? 안드로이드 어플리케이션은 자바 프로그래밍 언어로 작성됩니다.(출처) 3개 국어 모두 가능합니까? 바보 같은 질문을 해서 미안합니다.당신이 링크한 기사는 좋은 정보를 가지고 있습니다.또한 다음과 같은 내용을 담고 있는 http://developer.android.com/sdk/ndk/overview.html 로 연결됩니다. NDK는 대부분의 애플리케이션에 도움이 되지 않습니다.개발자로서..

programing 2023.10.15

C함수의 암묵적인 int 리턴 값

C함수의 암묵적인 int 리턴 값 구글 검색을 해봤는데 이 간단한 질문에 대한 답을 찾을 수가 없는 것 같습니다. 레거시 코드 기반(최근에 Linux로 포팅되고, 새로운 컴파일러로 천천히 업데이트됨)을 작업하는 중에 많은 정보가 표시됩니다. int myfunction(...) { // no return... } 함수의 암묵적 반환 유형은 int로 알고 있지만 반환이 지정되지 않았을 때의 암묵적 반환 값은 무엇입니까?테스트를 해보니 0점이 나왔는데, 그것은 gcc에서만 가능합니다.이 컴파일러는 특정한 것입니까, 아니면 표준이 0으로 정의된 것입니까? 편집: 2017년 12월 12일 표준의 최신 버전을 참조한 수정된 답변.89년 기준부터 새 증언에 인용된 바와 같이: 함수의 끝에서 흘러나오는 것은 식이 없는..

programing 2023.10.15

'올바른' 부호 없는 정수 비교

'올바른' 부호 없는 정수 비교 우리는 C을 알고 , 서 , 는, C/C++ /를 는합니다.-1 > 2u == true '' 를 합니다. 제 질문은 사람들이 익숙한 만큼 많은 아키텍처를 고려하면 더 효율적이라는 것입니다.분명히 인텔과 ARM이 더 비중이 높습니다. 주어진: int x; unsigned int y; if (x (int64)x (x < 0 || x < y) 전자는 0 확장, 부호 확장 및 1개의 비교+ 분기를 의미하며, 후자는 부호 확장 연산이 필요하지 않고 2개의 연속적인 cmp+ 분기를 의미합니다. 전통적인 통념에 따르면 분기는 신..

programing 2023.10.10

"unix"의 키워드가 C에서 제한되어 있습니까?

"unix"의 키워드가 C에서 제한되어 있습니까? 이 코드는 GCC 버전 4.3.2(데비안 4.3.2-1.1)에서는 컴파일되지 않습니다. main() { int unix; } C 키워드 리스트를 확인해보았는데 "unix"는 그 중 하나가 아닙니다. 다음 오류가 발생하는 이유는 무엇입니까? unix.c:2: error: expected identifier or ‘(’ before numeric constant unix는 표준에 의해 예약된 식별자가 아닙니다. 다음과 같이 컴파일할 경우-std=c89아니면-std=c99gcc 컴파일러는 당신의 기대대로 프로그램을 받아들일 것입니다. gcc 매뉴얼(https://gcc.gnu.org/onlinedocs/cpp/System-specific-Predefined-M..

programing 2023.10.10

C 및 C++ 개발을 위한 Eclipse의 대안?

C 및 C++ 개발을 위한 Eclipse의 대안? 문 닫았습니다.이 질문은 충족되지 않습니다.스택 오버플로 지침.현재 답변을 받지 않고 있습니다. 도구, 라이브러리 또는 선호하는 오프사이트 리소스를 추천하거나 찾으라는 질문은 의견이 많은 답변과 스팸을 끌어들이는 경향이 있기 때문에 스택 오버플로에서는 주제가 다릅니다.대신, 문제와 그것을 해결하기 위해 지금까지 무엇을 했는지 설명하세요. 9년전에 문을 닫았습니다. 이 질문을 개선합니다. 저는 이클립스를 C와 C++ 개발에 사용한 지 꽤 되었습니다.안타깝게도 이클립스에는 결함(속도, 엉망진창인 통합 콘솔, 그리고 가끔 나타나는 버그)이 있습니다. C++ 개발을 위해 Qt Creator는 매우 좋은 선택이지만, 저는 C와 C++ 둘 다를 위한 무언가가 필요합..

programing 2023.10.10

당신은 오른쪽 시프트가 C에서 무엇을 채우는지 조절할 수 있습니까?

당신은 오른쪽 시프트가 C에서 무엇을 채우는지 조절할 수 있습니까? C에서 왼쪽 시프트 비트 와이즈 연산자를 사용할 때 빈 비트가 0으로 채워지는 것으로 알고 있습니다.그러나 올바른 시프트는 구현에 의존적이라는 것을 읽었습니다. 즉, 어떤 기계에서는 빈 비트가 0으로 채워지고, 어떤 기계에서는 1로 채워집니다. 저는 프로그램에서 올바른 시프트를 사용하고 있으며, 실제로 제 기계는 빈 비트를 1s로 채우고 있습니다.문제는 제가 대신 0으로 채워야 한다는 것입니다. 오른쪽 시프트에서 0을 강제로 사용할 수 있는 방법이 있습니까? 한 가지 해결책은 오른쪽 시프트가 적용된 후에 0111111과 같은 마스크를 생성한 다음 비트와이즈 AND를 적용하여 가장 왼쪽에 삽입된 1을 0으로 변경하는 것입니다. 하지만 이것..

programing 2023.10.10
반응형