Это будет зависеть от языка и того, какую интеграцию вы хотите.
Все эти языки позволят вам выполнить системную команду, чтобы вы могли встроить свой C в исполняемый файл и вызывать его как команду. В Python:
os.system("myccode -v args etc")
Недостатком этого метода является то, что вы не разделяете какое-либо состояние памяти или не возвращаете много информации, и у вас есть накладные расходы на ускорение процесса. С другой стороны, его можно использовать везде, и он очень технологичный.
Каждый язык имеет свой собственный механизм вызова C в рамках одного и того же процесса. Например, Python имеет C API, и вы можете встроить свой C-код в расширение Python. Это обеспечивает очень тесную интеграцию, но требует больше усилий, как для изучения C API, так и для тщательной написания кода, чтобы не допустить утечки памяти.
Python также предоставляет ctypes , который может вызывать C DLL. Это немного проще, чем полное расширение C, но не предоставляет все те же возможности для интеграции.