user47400: it's all in the title ; I'm developping a library and use *TwoWire pointers in this library ; but I am using an external library that calls Wire.begin(). I've seen something about TWCR register in arduino but I don't know what it is exaclty.
Thanks in advance :)

user4143: What you are interested in is this bit of the Wire library:
TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);

The important bit is the TWEN bit - TwoWire ENable.
If that bit is set in the TWCR register than Wire.begin() has been called already and you don't need to call it again:
if (TWCR & _BV(TWEN) == 0) {
    Wire.begin();
}

However, it really doesn't matter if you call it multiple times.

47400: <p>it's all in the title ; I'm developping a library and use *TwoWire pointers in this library ; but I am using an external library that calls Wire.begin(). I've seen something about TWCR register in arduino but I don't know what it is exaclty.</p>

<p>Thanks in advance :)</p>
 4143: <p>What you are interested in is this bit of the Wire library:</p>

<pre><code>TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA);
</code></pre>

<p>The important bit is the <code>TWEN</code> bit - TwoWire ENable.</p>

<p>If that bit is set in the TWCR register than Wire.begin() has been called already and you don't need to call it again:</p>

<pre><code>if (TWCR &amp; _BV(TWEN) == 0) {
    Wire.begin();
}
</code></pre>

<p>However, it really doesn't matter if you call it multiple times.</p>
