¿El archivo objeto producido por C está escrito en lenguaje máquina?

Si tiene curiosidad sobre los metadatos que Richard Conto estaba discutiendo, un buen ejemplo de una implementación de un formato de archivo de objeto (formato binario ELF) está aquí:

Interfaz binaria de la aplicación System V

Si observa, las tablas de metadatos corresponden directamente a estructuras C, con cada campo en la secuencia binaria que comprende los metadatos en el archivo objeto correspondiente directamente al tipo de datos escalares C para el campo en la estructura C dada.

En resumen, es una tabla grande con una dirección inicial, compensaciones que representan entradas o registros completos y compensaciones que representan el tamaño del tipo de datos C que comprende cada campo por registro. Todo lo que necesita es una buena suma y multiplicación y está en camino de interpretar lo que a primera vista parece ser un flujo de bytes arbitrarios como tablas de metadatos.

Algo así como.

Los archivos de objetos producidos por un compilador son contenedores e incluyen metadatos sobre los contenidos (nombres de funciones y variables globales, información de reubicación, etc.), así como el código binario de la máquina.

Un ejecutable vinculado dinámicamente (como muestra Ome) es un tipo diferente de contenedor con información similar, pero con referencias a bibliotecas dinámicas como libc, etc.

Un ejecutable enlazado estáticamente (no los ve en las máquinas Linux de 64 bits de Intel) incorpora esas bibliotecas externas en un archivo, pero aún contiene un poco de información del contenedor.

por cierto: en todos estos formatos, la información de depuración puede (o no) incluirse en los metadatos del formato de archivo “binario”.

Sí, los archivos de objetos producidos por el compilador de C son códigos de máquina binarios. En esencia, el propósito de cualquier compilador es convertir algo comprensible para los humanos en algo comprensible para las computadoras. Normalmente, esto será algún tipo de código de máquina, pero como Christopher Benson señaló en su comentario, este no es siempre el caso. Y, como han mencionado otras respuestas, los archivos de objetos generalmente incluirán varios tipos de metadatos (incluidos los generados por el compilador de C).

More Interesting

¿Por qué las compañías tecnológicas dan a los solicitantes entrevistas técnicas en lugar de hacer que tomen una prueba escrita como el CS GRE?

¿Qué son buenas para evaluar las entrevistas con algoritmos de codificación?

¿Qué libros recomendará para que un estudiante de CSE (BE / B.Tech) sea seleccionado por buenas compañías como Google, Microsoft, Amazon, etc.?

¿Cuáles son las posibles razones para ser rechazado por una pasantía de programación después de una entrevista telefónica y escribir el código correcto?

¿Cuál es la estructura de datos y UX requerida para buscar fácilmente el contenido de Quora? ¿Qué se necesitaría para presentar esto de una manera simple y requerir el tiempo mínimo de lectura?

Programación de acertijos: Te dan n dados cada uno con caras numeradas del 1 al m. Lanzas los n dados y anotas la suma de los números en los n dados. Te dan un número x. Considérelo una ganancia si la suma obtenida es mayor que x. Encuentre la probabilidad de ganar dado n, m y x.

Si me estoy preparando para una entrevista tecnológica, ¿cuál sería el mayor beneficio: HackerRank, LeetCode o InterviewBit? ¿Qué distingue estos tres sitios?

Cómo lidiar con estar nervioso en la entrevista de programación

¿Es la complejidad del tiempo una preocupación en la ronda de codificación en línea de Amazon, Morgan Stanley y otras grandes empresas?

¿Cómo puedo equilibrar los paréntesis en una cadena usando un número mínimo de ediciones?

¿Es extraño que una empresa envíe un correo electrónico a todos los solicitantes como grupo (no bcc), eliminando así la privacidad en el proceso de solicitud?

¿Cuáles son las preguntas más frecuentes de la entrevista de programación?

¿Puedo pedir más tiempo para resolver una pregunta de algoritmo en la entrevista técnica?

¿Qué es una entrevista de selección técnica?

¿Cuál es una buena respuesta a "¿Por qué Amazon?" en una entrevista de ingeniería de software?