Wat is het M-bestandsformaat?
.m is een platte-tekstbestandsindeling die wordt gebruikt voor het opslaan van broncode geschreven in de programmeertaal Objective-C. Een nauw verwante extensie, .mm, ondersteunt Objective-C gemengd met C++ (Objective-C++). .m-bestanden worden vaak aangetroffen op Mac- of Windows-machines die worden gebruikt voor het ontwikkelen van macOS- en iOS-applicaties. Elk .m implementatiebestand vormt een paar met een bijbehorende .h header met dezelfde basisnaam, die de klasse-interface-declaraties bevat.
Objective-C is een programmeertaal die objectgeoriënteerde mogelijkheden toevoegt aan de taal C. Objective-C maakt gebruik van de Cocoa- en Cocoa Touch-frameworks en wordt voornamelijk gebruikt voor het schrijven van apps voor Apple-apparaten. In tegenstelling tot C++ is Objective-C een strikte superset van ANSI C. Een .m-bestand begint doorgaans met #import instructies (bijv. #import <Foundation/Foundation.h>) en bevat @implementation ... @end blokken die de methoden van een klasse definiëren. Sinds 2011 automatiseert Automatic Reference Counting (ARC) het geheugenbeheer, waardoor handmatige retain- en release-aanroepen niet meer nodig zijn. .m-bestanden worden gecompileerd door clang binnen Xcode. Sinds Apple in 2014 Swift introduceerde, is Objective-C niet langer de standaard voor nieuwe projecten, maar .m-bestanden blijven wijdverspreid in bestaande codebases en in gemengd Swift/Objective-C werk.
Beveiliging & veiligheid
RISICO: LOWEen .m-bestand is pure broncode - het doet niets totdat het is gecompileerd en uitgevoerd, dus het bestand zelf is een laag risico. De normale waarschuwingen voor broncode zijn van toepassing: lees de code voordat je deze bouwt, aangezien het compileren en uitvoeren van onbekende code alles kan doen wat het resulterende programma mag doen, en broncode uit onbetrouwbare bronnen kwaadaardige logica kan bevatten. Er is geen macro- of automatische uitvoeringsmechanisme in een .m-bestand door het simpelweg in een editor te openen. (Als het .m-bestand MATLAB blijkt te zijn in plaats van Objective-C, geldt hetzelfde advies - voer geen onbetrouwbare scripts uit.)
Formaatdetails
in een notendop- MATLAB script / functiebestand (.m) - Platte-tekst MATLAB-code - scripts en functies voor MathWorks MATLAB/Octave; het meest voorkomende .m-bestand in wetenschappelijk/technisch gebruik, een totaal andere taal.
- Wolfram Mathematica pakket (.m) - Een Wolfram Language pakket/bronbestand (ook gezien als .wl) met definities, geopend door Mathematica.
- Maple input/.m bibliotheekbestand - Maple gebruikt .m voor zijn interne (vaak binaire) bibliotheek-/opslagbestanden en Maple-invoercode.
Programma's die M-bestanden openen
Technische details
diepe specificaties| Bestandstype | Platte-tekst broncode (geen binair component) |
| MIME-type | text/x-objcsrc (ook geaccepteerd als text/plain) |
| Karaktercodering | UTF-8 of ASCII-compatibel; historisch ook Mac Roman of Latin-1 |
| Bestandssignatuur (magic bytes) | Geen - alleen geïdentificeerd door .m extensie; platte tekst zonder binaire header |
| Typische bestandsstructuur | #import instructies gevolgd door een of meer @implementation ... @end blokken |
| Bijbehorend headerbestand | .h-bestand met dezelfde basisnaam bevat de klasse-interface (@interface ... @end) |
| Belangrijke syntaxis-tokens | @implementation, @end, @property, @synthesize, #import, - (returnType)methodName |
| Compiler | clang (LLVM); historisch gcc voordat Apple in 2012 overstapte |
| Geheugenbeheermodel | Manual Reference Counting (MRC) of Automatic Reference Counting (ARC, sinds Xcode 4.2 / 2011) |
| Bijbehorende frameworks | Cocoa (macOS), Cocoa Touch (iOS/iPadOS) |
| Typische bestandsgrootte | Enkele honderden bytes tot enkele honderden KB aan brontekst |
| Objective-C++ variant | .mm extensie gebruikt wanneer Objective-C code moet samenwerken met C++ |
| Bijbehorende platforms | macOS, iOS, iPadOS (primair); GNUstep maakt gebruik op Linux en Windows mogelijk |
| IDE en bouwgereedschap | Apple Xcode (primaire IDE); clang en xcodebuild worden ook gebruikt vanaf de opdrachtregel |
| Uitgebracht | Objective-C language 1984; .m as the standard implementation-file extension since the NeXTSTEP era (late 1980s) |
| Laatste versie | Objective-C 2.0 (2006, Mac OS X 10.5); language is stable, now largely supplanted by Swift |
| Open standaard | Ja · royaltyvrij |
| Specificatie | developer.apple.com |
M conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over M-bestanden.