Jump to content

Memory layout of a data structure: Difference between revisions

New post.
No edit summary
(New post.)
Line 503:
example ndx 'RI CTS'
1 0</syntaxhighlight>
 
=={{header|Java}}==
<syntaxhighlight lang="java">
public final class MemoryLayoutOfDataStructure {
 
public static void main(String[] aArgs) {
RS232Pins9 plug = new RS232Pins9();
System.out.println(plug.getPin("receivedData"));
plug.setPin(2, Status.ON);
System.out.println(plug.getPin("receivedData"));
plug.setPin("signalGround", Status.ON);
plug.displayPinStatus();
}
}
 
enum Status { OFF, ON }
final class RS232Pins9 {
public Status getPin(int aPinNumber) {
for ( Pin pin : Pin.values() ) {
if ( pin.pinNumber == aPinNumber ) {
return pin.status;
}
}
throw new IllegalArgumentException("Unknown pin number: " + aPinNumber);
}
public Status getPin(String aName) {
for ( Pin pin : Pin.values() ) {
if ( pin.name() == aName ) {
return pin.status;
}
}
throw new IllegalArgumentException("Unknown pin name: " + aName);
}
public void setPin(int aPinNumber, Status aStatus) {
for ( Pin pin : Pin.values() ) {
if ( pin.pinNumber == aPinNumber ) {
pin.status = aStatus;
}
}
}
public void setPin(String aName, Status aStatus) {
for ( Pin pin : Pin.values() ) {
if ( pin.name() == aName ) {
pin.status = aStatus;
}
}
}
public void displayPinStatus() {
for ( Pin pin : Pin.values() ) {
System.out.println(String.format("%-29s%s", pin.name() + " has status ", pin.status));
}
}
private enum Pin {
carrierDetect(1, Status.OFF), receivedData(2, Status.OFF), transmittedData(3, Status.OFF),
dataTerminalReady(4, Status.OFF), signalGround(5, Status.OFF), dataSetReady(6, Status.OFF),
requestToSend(7, Status.OFF), clearToSend(8, Status.OFF), ringIndicator(9, Status.OFF);
private Pin(int aPinNumber, Status aStatus) {
pinNumber = aPinNumber;
status = aStatus;
}
private int pinNumber;
private Status status;
}
 
}
</syntaxhighlight>
{{ out }}
<pre>
OFF
ON
carrierDetect has status OFF
receivedData has status ON
transmittedData has status OFF
dataTerminalReady has status OFF
signalGround has status ON
dataSetReady has status OFF
requestToSend has status OFF
clearToSend has status OFF
ringIndicator has status OFF
</pre>
 
=={{header|Julia}}==
908

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.